Einzelnen Beitrag anzeigen

Gast
(Gast)

n/a Beiträge
 
#8

Re: Warten auf ...? MsgWaitForMultipleObjects

  Alt 25. Jul 2003, 08:50
@Hagen: Vielleicht klingt es nicht nur trivial, sondern ist es auch. Aber ich bekomme es nicht auf die Reihe. Vielleicht nur ein Schusselfehler?!

Es ist nicht möglich auf das Handle von GetCurrentThread() zu warten. Das habe ich auch schon gedacht gehabt (hätte ich auch dazuschreiben können ) ... das gibt WAIT_FAILED.
Auch mit CreateEvent() hatte ich es zum Zeitpunkt des Posts schon probiert. Doch vergeblich die Liebesmüh.

Wenn ich mit MsgWaitForMultipleObjects() auf ein echtes Objekt, oder mit der Anzahl 0 (und dereferenziertem NIL als zweitem Parameter) arbeite, dann wartet er einmal ... danach rasselt er nur noch durch. Selbst ein Manual-Reset Event, welches ich innerhalb der Schleife zurücksetzte hat nix gebracht. Also das eigentliche Problem hier lautet wirklich nicht "wie benutze ich eine Win32 API?" vielmehr geht es darum, wie ich die o.g. API zum laufen bekomme. Habe mal gegooglet und wie es scheint, gab es noch andere Leute mit meinem Problem.

Also von der Reihenfolger her sollten die Aufrufe etwa so aussehen

Code:
while true do
begin
  if MsgWaitForMultipleObjects(0, PDWORD(nil)^, True, 5000, QS_ALLEVENTS)<>WAIT_FAILED then
  if PeekMessage(msg, 0, 0, 0, PM_REMOVE) then
  case msg.Message of
  WM_QUIT: ...;
  end
  else
  begin
//    Eigentlicher Job ...
  end;
end;
  Mit Zitat antworten Zitat