Hallo augiaugi
sei mir nicht böse, aber dein Code ist total falsch.
Ich weiß, daß du dir von den Threads einen Geschwindigkeitsvorteil erhoffst, aber erstens ist das in deinem Fall nicht so (denn der größte Teil ist IO, d.h. Plattenzugriff) und zweitens muß man sich mit Threadprogrammierung gut auskennen.
Ein guter Einstieg ist als PDF-Datei unter
Multi-Threaded Programmierung zu finden.
Dein eigentlicher Fehler ist, daß du nur
eine statische Variable benutzt und diese kann natürlich während des Ablaufs sich ändern, d.h. zwischen den Zeilen
C#-Quelltext
1: 2: 3:
| ThreadFilesFromPath = new Thread(function_track.getFileInformation); ThreadFilesFromPath.Start(file); |
kann ein Threadwechsel erfolgen, so daß ThreadFilesFromPath dann auf eine Instanz eines anderen (schon gestarteten) Threads zeigt.
Falls du schon mit VS 2010 und .NET 4 programmierst, kann ich dir nur zur TPL bzw. dessen Tasks raten, denn dann brauchst du dich selber nicht um eigene Thread zu kümmern (einen kurzen Überblick gibt es als Powerpoint-Presentation von mir unter
www.c-sharp-forum.de...php?p=604486#604486).
Beim Auslesen der Directories und Files jedoch verzichte komplett auf Threads!