Sorry bitte löschen, ich hatte nicht gesehen daß es um C# ging
Eine Idee, nur angerissen,
zwischedurch Synchronize(Inform) aufrufen , FStatus als Threadklassenvariable
Delphi-Quellcode:
constructor TMyThread.Create(var CallBack:TCallBack);
begin
inherited Create(TRUE);
FCallBack:=CallBack;
InterlockedIncrement(ScalethreadCount);
OnTerminate := HandleOnTerminate;
FreeOnTerminate := True;
end;
procedure TMyThread.Inform;
begin
if Assigned(CallBack) then CallBack(FStatus);
end;
procedure TMyThread.HandleOnTerminate(Sender: TObject);
begin
InterlockedDecrement(ScalethreadCount);
try
if Assigned(FInform) then FInform(self);
except end;
end;