Hallo!
Ich benutze folgenden Code in einem Thread:
Delphi-Quellcode:
dwWait := WaitForSingleObjectEx(
FConnectEventHandle, // event object to wait for
INFINITE, // we have plenty of time
true);
Eigentlich bin ich sehr zufrieden damit, da es sehr ressourcensparend ist und ich eigentlich keine Timeouts brauche.
Allerdings gibt es ein paar Fälle, wo ich den Thread beenden muss (z.B. Programmende). Da der Thread geblockt ist, kann ich Terminated nicht regelmäßig prüfen.
Multithreading the Delphi Way (das beste Schriftstück, für Threads
IMHO ) sagt dazu:
Zitat:
If your thread blocks, as a result of any of the synchronization mechanisms discussed later, you may have to override the terminate method to unblock your thread.
Nur habe ich keine Ahnung, wie man das macht:
1) Wie killt man so ein WaitForSingeObjectEx?
2) Wird Terminate() überhaupt ausgeführt, wenn der Thread geblockt ist? Ich nehme schon sehr stark an, aber...
Danke,
Andreas
Andreas N.