Hello all!
Does somebody have this problem: if twsocket is created in thread and the
thread goes to suspend mode, than if you try to call i.e. explorer thru
shellexecute, the whole applications hangs some minutes. I assume it has
something todo with Window Handle Allocation in TWSocket, but not sure. As for
my application, it's not essential, since I can find some alternatives to
shellexecute. But! It's seems to be, that the shell operations of whole windows
is blocked - and this is the problem. What I mean: i.e. if you try to click on
url in an email, IE will not be started - in hangs, if you try to put your PC
in standby mode - it hangs... etc. etc.
You can, I hope, easily reproduce this behaviour i.e. with ftpthrd.dpr from ICS
distribution.
1. Just add in procedure TTransferThread.Execute (ftpthrd1.pas) one line - see
code below
procedure TTransferThread.Execute;
var
FtpClient1 : TFtpClient;
begin
FtpClient1 := TFtpClient.Create(nil);
// just add below line: Suspend;
Suspend;
....
....
2. put one more button on the form and add shellapi to uses
procedure TThrdFtpForm.Button1Click(Sender: TObject);
begin
ShellExecute(Application.Handle, 'explore', 'd:\', nil, nil, SW_SHOWNORMAL);
end;
3. Click Start (FTPclient will be created, of course twsocket too) and than
click on button which call shellexecute
you will see what I described above.
Thanks for any help & best regards, A.Svetov
--
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