为了账号安全,请及时绑定邮箱和手机立即绑定

怎么控制其他线程休眠啊?

怎么控制其他线程休眠啊?

慕的地10843 2018-12-07 02:10:29
public void SleepByName(string name)         {             if (this.trdList.Count == 0) return;             for (int i = 0; i < this.trdList.Count; i++)             {                 if (this.trdList[i].Name == name)                 {                     if (this.trdList[i] != null && this.trdList[i].ThreadState != ThreadState.Stopped)                     {                                                 break;                     }                 }             }         }   我想遍历一个存放线程的集合,然后控制里面的线程休眠,请问怎么操作啊?用Suspend吗? 休眠自己的线程 是Thread.Sleep(500)  那么休眠其他线程呢?
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

不要使用 Suspend 方法来同步线程的活动。您无法知道挂起线程时它正在执行什么代码。如果您在安全权限评估期间挂起持有锁的线程,则 AppDomain中的其他线程可能被阻止。如果您在线程正在执行类构造函数时挂起它,则 AppDomain 中试图使用该类的其他线程将被阻止。很容易发生死锁。  名称说明 Thread.Sleep (Int32) 将当前线程挂起指定的时间。 由 .NET Compact Framework 支持。 Thread.Sleep (TimeSpan) 将当前线程阻塞指定的时间。 楼主可以遍历线程,使用Sleep实现线程阻塞一段时间,尽量不要使用Suspend
查看完整回答
反对 回复 2018-12-09
  • 2 回答
  • 0 关注
  • 504 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信