delphi indy阻塞问题,请教!

我用indy里的idtcpclientidtcpserver组件作通信程序,网上查了一大堆资料,说阴塞只是阻塞时只是阴塞监听进程而不阻塞主进程,于是我作了下试验:在FOR... 我用indy 里的idtcpclient idtcpserver组件作通信程序,网上查了一大堆资料,说阴塞只是阻塞时只是阴塞监听进程而不阻塞主进程,于是我作了下试验:
在FORM1上添加IDTCPCLIENT控件和一个按钮,IDTCPCLIENT的端口什么的设置我们就不说了,单说这个按钮,我在里面添加了如下代码procedure TForm1.btn2Click(Sender: TObject);
begin
cmd := idtcpclnt1.ReadLn;
ShowMessage(cmd);
end;
照我的理解,只是阻塞监听进程的话,当服务端那边还没有writeln过来的时候,这时候client的监听进程是处于阴塞状态的,但下面的ShowMessage(cmd);这一句应该照常执行才对,但为什么实际情况却是当我按下接钮时毫无反映,一定要待服务端那边writeln过来时,才会触发下面的showmessage? 请教!
展开
 我来答
ryandong
2010-05-02
知道答主
回答量:32
采纳率:0%
帮助的人:0
展开全部
监听进程?主进程?你想说的是线程吧?
如果要让UI线程在阻塞的时候可以响应,用indy的话,需要把阻塞的代码放到另一个线程中执行,执行完毕后通知主线程
三天起个名
2010-05-06 · TA获得超过952个赞
知道大有可为答主
回答量:1445
采纳率:0%
帮助的人:1701万
展开全部
强人啊,哥们,你把监听线程放在主进程里面,当然就阻塞了主进程。

你应该开一个线程去监听。这样主进程就不会阻塞
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式