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) 那么休眠其他线程呢?
不要使用 Suspend 方法来同步线程的活动。您无法知道挂起线程时它正在执行什么代码。如果您在安全权限评估期间挂起持有锁的线程,则 AppDomain中的其他线程可能被阻止。如果您在线程正在执行类构造函数时挂起它,则 AppDomain 中试图使用该类的其他线程将被阻止。很容易发生死锁。
名称 | 说明 |
---|---|
Thread.Sleep (Int32) | 将当前线程挂起指定的时间。
由 .NET Compact Framework 支持。 |
Thread.Sleep (TimeSpan) | 将当前线程阻塞指定的时间。 |
楼主可以遍历线程,使用Sleep实现线程阻塞一段时间,尽量不要使用Suspend
遍历线程用Sleep?Sleep不是只能休眠自身进程吗?可以休眠其他进程? 能不能给段代码示例 谢谢了!
foreach(var item in 线程集合)
{
item.sleep(500);
}