郁闷的线程关闭及线程触发事件问题。。。

yiyuan 2004-11-11 10:02:29
现在觉得,多线程的关闭真是多线程程序中最郁闷的事情。在多线程程序中,有很多特殊的地方,使得平常很正常很自然的事情没办直接做,很是麻烦。

最麻烦的事情就是线程关闭的问题。本来如果线程出现了问题,就把那个线程关闭是很正常的事,但由于关闭的线程就是当前正运行关闭代码的线程,会中断正在做的事,会出现很麻烦的逻辑问题。使得线程关闭要绕好几个圈子,而不能直接关闭。

如果程序中使用了触发事件,那事情就更麻烦了。因为触发的事件的处理过程使用的也是同一个线程,在事件的处理过程中如果不小心,就很可能关闭了正在运行的这个线程,也可能引发各种线程死锁等问题,调试很是困难。

比如我现在就遇到一个问题:当服务器遇到网络故障时,会触发一个事件,由其它类来进行故障处理。本来对于服务器遇到网络故障,我把服务器停掉再重新开启是一个很自然的解决方法,但由于线程问题,这根本不容易做到。因为触发当前事件的正是服务器的线程,如果我停掉了现在的服务器,就把正运行的这个线程停掉了,也就不可能进行什么开启服务器的操作。

这种问题在我的多线程程序中很常见,为解决这种问题就要绕好几个圈子,而不能直接的完成功能,很是麻烦,也大大增加了错误的可能性。

不知道大家写多线程的程序时是如何解决这种问题的?我上面提到的问题有什么比较简单,比较完善的解决方法?
...全文
131 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyuan 2004-11-21
  • 打赏
  • 举报
回复
再再UP
wangyiaccp2004 2004-11-15
  • 打赏
  • 举报
回复
UP
yiyuan 2004-11-15
  • 打赏
  • 举报
回复
再UP
yiyuan 2004-11-13
  • 打赏
  • 举报
回复
慢慢顶
yinbinfeng0451 2004-11-13
  • 打赏
  • 举报
回复
关注....
yiyuan 2004-11-13
  • 打赏
  • 举报
回复
singleflower 2004-11-12
  • 打赏
  • 举报
回复
用异步不能解决吗?

想听听你的解决方法,我目前也要写一个类似的服务程序
yiyuan 2004-11-12
  • 打赏
  • 举报
回复
我也没有什么专门的方法,转着圈总可以解决的,注意同步,注意各种操作的顺序,只不过要纯依靠编程人的经验和技巧,就像以前要在4K内存下编程似的,多线程程序极难调试,要写出没有任何问题的程序很困难,靠的就是技巧。

我发这个帖子,也是想请教下大家都有什么好方法。
xzq686 2004-11-12
  • 打赏
  • 举报
回复
不会。顶一下。
yiyuan 2004-11-12
  • 打赏
  • 举报
回复
UP

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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