Hi,
Habs jetzt folgendermaßen aufgebaut:
Delphi-Quellcode:
procedure TThreadPool.AddJob(AJob: TObject);
begin
PostQueuedCompletionStatus(FIOComPort,SizeOf(TObject),Cardinal(AJob),nil);
end;
procedure TThreadPoolThread.GetJob;
var bytes: Cardinal;
over: POverlapped;
ajob: Cardinal;
begin
if GetQueuedCompletionStatus(FIOComPort,bytes,AJob,over,0) then
FJob := TObject(AJob)
else
FJob := nil;
end;
procedure TThreadPoolThread.Execute;
begin
while not FDead do
begin
GetJob;
if (Assigned(FOnWork)) and (Assigned(FJob)) then
FOnWork(Self,FJob);
sleep(1);
end;
end;
Das klappt jetzt prinzipiell schon... Problem ist nur, dass es mehrere Jobs gibt, die ein und diesselbe Objektinstanz repräsentieren, die aber mehr oder weniger gleichzeitig von meinen Threads im Threadpool bearbeitet werden. Und dann kracht es -.-
Wenn du noch irgendwelche Infos dazu brauchst, dann sag mir ruhig Bescheid.
Danke auf jeden Fall für die Hilfe bisher
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."