C# Tip -- 如何优雅的控制线程状态

C# 专栏收录该内容
3 篇文章 0 订阅

先问读者一个问题,如果想控制一个线程(Thread)挂起,继续,结束你会优先选择如何处理?

从面试的经验来看,多数的面试者都会说Thread不是提供了Suspend,Resume,Abort等方法吗,直接调用就好了,简单快捷.但很多情况下简单就是美只是一个谎言而已.

Suspend和Resume方法已经被MS标注过时(Obsolete),不建议用户使用,MS同时推荐通过同步控制来管理线程状态.

 

再问读者一个问题,如果控制一个线程池中的线程的挂起,继续,结束你会优先选择如何处理?

也许有人会说,既然没法用API了,那我定义一些标志量,来做状态控制不就可以了吗?

确实,说起来很简单.那么变量的值需不需要考虑由于多线程问题导致的读写问题呢,你会怎么处理?

如果不用标志量,可以用同步事件来做,会不会跟优雅一些呢?

 

让我把传统的方式以及使用同步方式做的控制都写一遍,让读者来做取舍吧.

 

代码如下,注释也比较全,就不再累述细节.

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值