日期:2014-05-18  浏览次数:20837 次

多线程的问题,万分感谢
客户端窗体和服务器通信,客户端receive接受数据的时候如果服务器端返回数据的时间较长,那么客户端窗体将显示 程序没反应 并且在这段时间内客户端窗体是不能动的
为了解决这个问题我将receive方法放到另一个线程里。然后receive方法收到数据后将数据赋值给以个全局变量
我又新建第二个线程 用while(true)循环不断测试这个全局变量是否有数据。如果有数据将对数据处理。如果数据处理成功,那么将新建另一个 窗体 并显示。

这个时候问题来了:因为新建的窗体是在第二个线程里运行的,所以一旦第二个线程结束,那么这个新窗体将同时关闭。

所以我想请教的是 是否有方法解决这个问题?

------解决方案--------------------
你可以不在线程中创建窗体啊,线程中只负责数据处理,然后委托去操作界面
------解决方案--------------------
在你的主界面申明一个用于新建第二个窗体的方法委托,在你的线程里调用主界面的委托
------解决方案--------------------
一般不建议在不同的线程里面创建不同的窗体。你可以开一个新的线程来处理数据,完成之后在新线程中调用主窗体的委托来更新界面。