最近在做一个聊天软件,郁闷。还要和Msn差不多。郁闷。不得不用Indy。郁闷。Indy UDP客户端用一个线程来接受服务端的消息。郁闷。最郁闷的就是这个线程。我在UDPRead事件调用一些方法。但是发现被卡死了。铁定是线程的问题。我用codesite看了一下原来的线程ID,在响应UDPRead事件收到消息之后线程ID被改掉了。郁闷!!!!!不管执行什么都出问题。怎么在原来的线程中执行?或者说怎么调用主线程,翻了好多书都没有答案郁闷!

解决方案 »

  1.   

    因为UDPRead事件是在INDY自己的线程里
      

  2.   

    通常这种问题我的做法是:再创建一个线程Object,然后在Host线程和INDY线程中都通过它交互即可。
      

  3.   

    Indy的线程执行完毕之后,当前线程改成了这个线程。现在最好的方案就是执行Indy自己的线程之后。改回主线程。怎么切换回主线程呢?
      

  4.   

    郁闷。indy自己有一个TheadEvent。被我的同事搞成了true.没有调用Synchronize(UDPRead);铁定死了…… 郁闷啊。郁闷被我发现了。。结贴!