Einzelnen Beitrag anzeigen

EConvertError

Registriert seit: 29. Sep 2003
Ort: Österreich
230 Beiträge
 
#1

WaitForSingleObjectEx() ohne Timeout: Thread aufwecken

  Alt 25. Jan 2008, 20:22
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.
  Mit Zitat antworten Zitat