Fastream Technologies wrote: > I think he is not assigning his own message oump at all--using the default > one with PeekMessage.
Again, that is not TRUE: { Loop thru message processing until the WM_QUIT message is received } { This is intended for multithreaded application using TWSocket. } { MessageLoop is different from ProcessMessages because it actually block } { if no message is available. The loop is broken when WM_QUIT is retrieved. } procedure TCustomWSocket.MessageLoop; var MsgRec : TMsg; begin { If GetMessage retrieves the WM_QUIT, the return value is FALSE and } { the message loop is broken. } while GetMessage(MsgRec, 0, 0, 0) do begin TranslateMessage(MsgRec); DispatchMessage(MsgRec) end; FTerminated := TRUE; end; However, if he has both property MultiThreaded set to TRUE as well as calls (sync) method Get then it may result in plenty of CPU usage: procedure THttpCli.DoRequestSync(Rq : THttpRequest); var DummyHandle : THandle; begin DoRequestAsync(Rq); [..] if FMultiThreaded then begin while FState <> httpReady do begin FCtrlSocket.ProcessMessages; Sleep(0); end; end else begin while FState <> httpReady do begin { Do not use 100% CPU } DummyHandle := INVALID_HANDLE_VALUE; MsgWaitForMultipleObjects(0, DummyHandle, FALSE, 1000, QS_ALLINPUT + QS_ALLEVENTS + QS_KEY + QS_MOUSE); {$IFNDEF NOFORMS} Application.ProcessMessages; if Application.Terminated then begin Abort; break; end; {$ELSE} FCtrlSocket.ProcessMessages; {$ENDIF} [..] -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be