在线程中使用INDY的正确方法?如果方法正确了主界面就不会"阻塞"了吗?
qsgs 2006-01-13 12:48:50 我试着在线里使用IdTCPClient,可是程序界面仍然会被"阻塞",直到IdTCPClient执行完毕.
是不是我的方法不正确呢?谁有过成功的例子给我一个好吗?
相关代码:
void __fastcall TfrmMain::btnConnectClick(TObject *Sender)
{
ThreadC1 *Thread1=new ThreadC1(true);
Thread1->FreeOnTerminate=true;
Thread1->Priority=tpLower;
Thread1->Resume();
}
void __fastcall ThreadC1::Execute()
{
this->Synchronize(Connect1);
}
//---------------------------------------------------------------------------
void __fastcall ThreadC1::Connect1()
{
try
{
frmMain->IdTCPClient1->Disconnect();
frmMain->IdTCPClient1->Host=frmMain->edtRemoteIP->Text;
frmMain->IdTCPClient1->Port=StrToInt(frmMain->edtPort->Text);
frmMain->IdTCPClient1->Connect();
}
catch(Exception &e)
{
ShowMessage(e.Message);
}
}