nja, du wie schon erwähnt, solltest du die Zugriffe vom Thread aus trheadsicher absichern,
also wärend des Zugriffs den Hauptthread "sperren".
ich mach es bei meinem SSF so, daß ich erstmal das ganze Verteichnis temporär einlese (und noch Einiges mehr),
eine interne Liste erstelle und dann zum Schluß
kurz die Threads sperre (aka Control.BeginInvoke)
und alles zusammen (je ein ganzes Verzeichnis) in den Baum einfüge
und dann wieder entsperre
eine Auflistung via FindFirstFile/FindFirst dauert bei großen Verzeichnissen ja leider etwas
und die Threads für jede Datei einzeln zu blocken fand ich etwas unökonomisch