none
跨线程的问题 RRS feed

  • 问题

  • 我先说下程序的结构

    两个程序集A和B,B中一个类实现A中的一个接口,A的一个类同样也实现B中的一个接口。

    先是A通过接口调用B中的一个功能,这个功能有网络的监听操作,所以我把等待连入的代码放在了一个子线程中以防止卡住。

    当这个监听操作完成一次接收数据时,会通过接口(由A实现的那个)把数据回传给A。

    问题如下:

    通过debug,我发现数据可以正确传回来,但在回传数据的函数中(也就是实现B中接口的类中的函数)无法操作A程序的Form。

    而且操作Form的语句并没有抛出异常,我试着在这个函数中做一些其他操作(如MsgBox等)都可以执行。

    我也试过把CheckillegleCrossThread什么的那个设为False,也不行。

    然后我在A的这个类中添加了Delegate,并使用Form.Invoke来更改界面,但却得到一个异常 “无法在创建窗体句柄前XXXX”

    我该怎么做?

    2011年5月5日 11:07

答案

全部回复