info2004 wrote:
> Francois, and Arno,
>>> while not terminated do
>>>  begin
>>>  WSocket.MessagePump;
>>>  // check if I need to do something
>>>  sleep(100);
>>>  end;
>>> // close it all down
>>> Or am I missing the point in the use of the message pump?
>> Yes, you miss something. The code you've done will be very slow at
>> processing events because of the sleep. And it you remove the sleep,
>> it will use all CPU.
> OK.
>> The solution is simple: you need to use a real message loop. Easy:
>> just call MessageLoop which all TWSocket instances have. To
>> terminate the message loop, you can post a WM_QUIT message when you
>> detect your thread has terminated.
> If I do:
> while not terminated do
>  begin
>  WSocket.MessageLoop;
>  // check if I need to do something
>  end;
> // close it all down
> Then my understanding from what you have said is that I only get to
> the // check if I need to do something
> when a quit is posted.
> I am running a finite state machine in the execute loop, which
> marshalls responses, checks timeouts etc. If I don't exit the message
> loop, I can't do this. 

1) Rely on WSocket events, control program flow from the various
event handlers. 

2) In order to control your thread or anything else you can use 
your own custom messages (WM_USER + n) and run your own custom
message loop, here's an example:

procedure MyMessageLoop;
    Msg : TMsg;
    while GetMessage(Msg, 0, 0, 0) do
        if Msg.hwnd = 0 then
        // Messages posted with PostThreadMessage() go here, 
        // their Hwnd equals zero. 
            case Msg.message of
                WM_CUSTOM_MESSAGE_1: DoSomething1;
                WM_CUSTOM_MESSAGE_2: DoSomething2;
        else begin

Arno Garrels [TeamICS]


> Really sorry if I am missing the point on this. Long hours, fried
> brain. 
> Regards,
> Andy
>> --
>> The author of the freeware multi-tier middleware MidWare
>> The author of the freeware Internet Component Suite (ICS)
To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to