我在项目中遇到一个问题,在使用组件TClientSocket时候,采用异步模型。在SocketRead事件中,如果函数除了某个问题,不能结束(比如,某数据导致死循环。),这个时候,SOCKET就不能处理后面的数据了,连界面都象死了一样。可是真正的异步模型应该不是这个样子了,应该在内部会启动一个后台线程去处理。或者是那里可以设置,请教高手。

解决方案 »

  1.   

    你用的是Indy系列的控件么? 好像这个空间就不是异步的,我一般自己开线程监控的。
      

  2.   

    to:sunhuiNO1  
      那么请问什么是异步的?
      我在VC、。NET中象这样的异步都是没有问题的。异步模型在我看来,就是如果一个模块是异步的,那么这个模块在没有执行完毕就返回了,在内部应该使用PostMessage这样的机制实现这样的发送。那么应该有一个后台线程去处理这个模块。在这个案例中,连主线程都死掉了。那么这样的异步有什么用??只是实现了一个事件触发机制罢了。我终于明白了,DELPHI为什么遇到。NET就跨掉了。
      

  3.   

    你的代码的问题。即使移植到.NET+++也一样会有问题~~~~~