网友对关于线程间通信的问题的建议

马修][.NET架构](120555124) 10:55:12
TO:樱木花道-c#
主线程挂了后台线程完全不影响会继续执行下去。
你之所以会考虑这个问题就是当时设计这个线程间通讯协议上有缺陷,单向的发送消息比较高效但是会产生你上述的问题。

你不妨考虑改成两次握手协议,后台发送消息后主线程返回一个消息(或者一个单纯的返回值也行),后台线程接受到该消息后才会继续执行或者其他什么做法随你。

更健全一点的设计是,你可以用一个单独线程来负责通讯和维护后台线程的运行状况。中转消息,监听响应时间(以决定是否超时之类的),判断情况并发送消息通知后台线程的运行和挂起退出等等
[马修][.NET架构](120555124) 10:55:19
个人愚见,仅供参考


008:

你可以定义一个枚举,用来描述你的工具死掉的原因,然后定义一个全局变量(错误枚举),然后主线程执行时,如果不正常,那就把这个全局变量赋值为对应的错误类型。定时器判断这个类型就可以了
樱木(512328769) 11:02:03
catch很多的,因为导致工具死掉的地方很多,应该在每个catch都要关掉定时器吧
/tp008(27194751) 11:02:43
一关一开的多麻烦,定时器判断主线程是否正常就可以啦

你可能感兴趣的:(线程间通信)