首页 新闻 搜索 专区 学院

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

0
悬赏园豆:5 [已解决问题] 解决于 2013-04-28 10:11

  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)  那么休眠其他线程呢?

吴顶天的主页 吴顶天 | 初学一级 | 园豆:39
提问于:2013-04-06 18:42
< >
分享
最佳答案
0

不要使用 Suspend 方法来同步线程的活动。您无法知道挂起线程时它正在执行什么代码。如果您在安全权限评估期间挂起持有锁的线程,则 AppDomain中的其他线程可能被阻止。如果您在线程正在执行类构造函数时挂起它,则 AppDomain 中试图使用该类的其他线程将被阻止。很容易发生死锁。 

名称说明
Thread.Sleep (Int32) 将当前线程挂起指定的时间。

由 .NET Compact Framework 支持。

Thread.Sleep (TimeSpan) 将当前线程阻塞指定的时间。

楼主可以遍历线程,使用Sleep实现线程阻塞一段时间,尽量不要使用Suspend

收获园豆:5
墨猦 | 小虾三级 |园豆:668 | 2013-04-06 21:27

遍历线程用Sleep?Sleep不是只能休眠自身进程吗?可以休眠其他进程? 能不能给段代码示例 谢谢了!

吴顶天 | 园豆:39 (初学一级) | 2013-04-16 09:45
其他回答(1)
0

foreach(var item in 线程集合)

 item.sleep(500);

  }

chenping2008 | 园豆:9836 (大侠五级) | 2013-04-06 20:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册