...von denen es in jeweils einem Array (array1, array2) beliebig viele geben kann. ...
Sachma, was für eine CPU hast Du denn?
So kann man das
imho am einfachsten lösen:
Delphi-Quellcode:
Procedure TMyThread.AddToList (const task : String);
Begin
MyCriticalSection.Enter;
Try
MyStringList.Add(task);
Finally
MyCriticalSection.Leave;
End
End;
Function TMyThread.GetNextTask : String;
Begin
MyCriticalSection.Enter;
Try
If MyStringList.Count = 0 then
Result := ''
else begin
Result := MyStringList[0];
MyStringList.Delete(0);
end
Finally
MyCriticalSection.Leave;
End
End;