Das Prinzip ist folgendes: Es werden die Threads erzeugt. Da ich ja mehrere habe, kann ich in einem Thread den Fortschritt nicht anzeigen, also wird in jedem Thread nach einem Ping eine globale Variable threadsicher inkrementiert mit InterLockExchangeIncrement. Diese Variable wird in einem Timer ausgelesen und visualisiert. Das hinzufügen der Items im Listview geschiet in einer CrtiticalSection, sag ich nur, falls jemand denkt ich hätte da was vergessen.
Eigentlich wird die betreffende Variable zum Schluss hochgezählt, aber anscheinend ist ein Thread noch nicht ganz fertig mit eintragen oder so, weshalb es passieren kann, dass noch ein Eintrag hinzugefügt wird, wenn er eigentlich schon fertig sein sollte.
@jfheins: Und da wunderst du dich?