我的应用程序中有很多线程,如何只停止它们中的一个线程?如果我使用Thread.Sleep()
它会停止整个应用程序,我只想停止一个线程。我怎么做?我正在使用c#。
答案 0 :(得分:1)
当您使用Thread.Sleep()
时,您只停止调用此方法的线程。如果您的主线程(即UI线程)调用Thread.Sleep()
,则应用程序冻结(实际上其他线程继续工作,但UI未刷新)。所以,如果你想停止一些线程,那么:
Thread.Sleep()
示例(假设此代码在主线程上执行):
ThreadPool.QueueUserWorkItem(DoSomething);
Thread.Sleep(1000); // this will freeze application
这是一个回调(在后台线程上执行):
static void DoSomething(object state)
{
Thread.Sleep(5000); // this will not freeze application
}