我的线程如何工作的模型是一些ThreadManager
给每个线程一个转弯。当它是一个线程时,它会执行几行代码。
要暂停一个帖子,是不是只有ThreadManager
(暂时)停止允许该线程转弯?
要中止某个帖子,ThreadManager
是不是只能再转动该线程?
有什么问题?
答案 0 :(得分:12)
引用MSDN关于暂停线程:
你无法知道代码是什么 挂起时线程正在执行 它。如果你暂停一个线程 在安全期间持有锁 权限评估,其他线程 在AppDomain中可能会被阻止。如果 你暂停一个线程 执行类构造函数,其他 尝试的AppDomain中的线程 使用该类被阻止。 死锁很容易发生。
中止的线程可能导致不可预测的情况。有一篇很好的文章:http://www.bluebytesoftware.com/blog/2009/03/13/ManagedCodeAndAsynchronousExceptionHardening.aspx
答案 1 :(得分:4)
我同意Alex的观点,但是为了进一步详细说明,如果你需要“暂停”一个线程,那么最好看看某种锁定机制,如信号量,互斥体或其他许多可用的锁定机制。
但是,在不知道您的代码的情况下,Windows是一种先发制人的多任务处理环境。通常这不是必需的,只需让您的线程运行,底层操作系统和调度程序将确保您的所有任务都得到合理的转变。