If you still want to Suspend the thread another option may
be to call ThreadDetach before Suspend and ThreadAttach
when the thread is resumed again.

Something like this:

Create it;
WSocket1.ThreadDetach;
while not Terminated do
begin
            WSocket1.ThreadAttach;
            WSocket1.Send(Something);
            WSocket1.MessageLoop;           
            PostMessage(ParentFormHwnd, WM_Thread_Suspended, Integer(Self), 0);
            WSocket1.ThreadDetach;
            Suspend;
end;

Arno Garrels


Wilfried Mestdagh wrote:
> Hello,
> 
> In additions to the reply of Francois: In the rare occasions that I have
> a hidden window in a thread that has to be reused whole the time, I dont
> go into suspended but just do nothing. The messagepump I uses, uses
> GetMessage(), so if no message is post then GetMessage is in a wait
> state with almost no CPU load.
> 
> ---
> Rgds, Wilfried [TeamICS]
> http://www.overbyte.be/eng/overbyte/teamics.html
> http://www.mestdagh.biz
> 
> Friday, February 17, 2006, 21:58, asvetov wrote:
> 
>> Hello, Wilfried!
> 
>> Thank you for clarifying this. Do you have any recommendations how
>> to avoid this behaviour?  I think many people works with different ICS
>> components in threads and reuse threads (doing suspend/resume) and all
>> they have this problem? Or I│ am the only one who haven│t solved this
>> :)
> 
>> Best regards, A. Svetov
> 
>>> Hello asvetov,
>>> 
>>> This is normal behaviour in windows. If you create a (hidden) window in
>>> a thread you must pump messages or your system can deadlock. If you
>>> suspend a thread having a window then it cannot pump, so that is what
>>> you experiance.
>>> 
>>> ---
>>> Rgds, Wilfried [TeamICS]
>>> http://www.overbyte.be/eng/overbyte/teamics.html
>>> http://www.mestdagh.biz
-- 
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

Reply via email to