关于窗体线程和工作线程的通讯问题

guchengduniao 2012-05-08 09:56:37
C#网络编程的时候遇到一个问题,来请教各位
1、直接使用socket类进行操作的,没有使用TCPClient类。线程分为窗体线程和接收数据的线程。窗体线程负责界面绘制,发送命令,数据到服务器端。而接收数据的线程负责从服务器端传送过来的数据,暂称为工作线程(所有的数据接收工作都在工作线程)。
2、窗体线程采集控件上的数据,先发送查询的命令到服务器端,服务器返回数据,数据会被工作线程接收到,工作线程将结果给窗体线程,窗体线程根据结果进行判断,是否继续进行下一步操作。
3、问题,如果从工作线程返回数据给窗体线程,并让窗体线程在收到数据之前不进行下一步操作。
4、现在构思的解决方式:
(1)窗体线程发送查询命令,然后挂起线程。
(2)在工作线程里面定义一个事件,当接收到有该命令相关的数据后,发送事件,在窗体线程里面订阅该事件,在窗体里面定义一个变量,在事件处理程序中,跟据接收到的数据来对变量进行修改,并唤醒窗体线程。在窗体线程中根据所设置的变量进行下一步操作。
5、觉得这样的实现方式太麻烦,不知道有没有更好的方式,诚心请教。
...全文
66 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧