Registriert seit: 16. Aug 2003
200 Beiträge
|
Re: Liste (ähnlich dyn Array) mit fortlaufendem Index?
24. Mär 2010, 23:51
Ich habe das Problem mal wie folgt gelöst:
Beide Threads ("Sammler" und "Arbeiter") haben je eine TList.
Der Sammler füllt fleissig seine Liste und setzt einen Event über den der Arbeiter erkennt das neue Daten vorliegen (WaitForSingleObject). Dann tauscht er seine abgearbeitete, leere Liste per FWorkList := TList(InterlockedExchange( Integer(FSammler.FList), Integer(FWorkList)));
mit dem Sammler aus.
Der Sammler macht immer ein einfaches Add() und der Arbeiter kann von 0 bis Pred(Count) zugreifen ohne das sich die beiden jemals ins Gehege kommen.
Der eindeutige Index ist dann überflüssig.
MfG,
Dirk
|