
相关问题:
Is there a way to indefinitely pause a thread?
解决方法 一般来说,不要暂停(或中止)线程 – 您通常不能告诉它正在做什么,这可能会导致各种锁定问题,例如未释放的锁或类型初始化程序(静态构造函数)被挂起.但是,您可能会通过更优雅的方法暂停代码 – 例如,在循环中使用ManualresetEvent,外部代码(在另一个线程上)可以打开和关闭:
// worker loopwhile(alive) { // if the gate is closed,wait up to 5 seconds; if still not // open,go back to the loop-start to re-check "alive" if (!gate.WaitOne(5000)) continue; // do work...} 那么另一个具有访问权限的线程(可能是间接的)可以暂停(重置)并恢复(设置)工作者,但是知道它只能在安全状态下暂停.
回复你的评论(另一个答复) – 听起来你有一个读者和作家;理想的生产者/消费者场景.我有一个例子on this question如何编写一个具有上限大小的生产者/消费者(所以如果消费者运行缓慢,它不会沼泽) – 消费者阻止,如果没有数据,生产者阻止如果有太多.
总结以上是内存溢出为你收集整理的如何在C#中中止,暂停和恢复线程?全部内容,希望文章能够帮你解决如何在C#中中止,暂停和恢复线程?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)