-1
我的應用程序中有很多線程,我該如何停止它們中的一個線程?如果我使用Thread.Sleep()
它會停止整個應用程序,我只想停止一個線程。我怎麼做?我正在使用C#。只停止一個線程
我的應用程序中有很多線程,我該如何停止它們中的一個線程?如果我使用Thread.Sleep()
它會停止整個應用程序,我只想停止一個線程。我怎麼做?我正在使用C#。只停止一個線程
當您使用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
}
如果Thread.Sleep運行在自己的線程上,它不應該暫停程序。你能顯示一些代碼嗎? –
我建議你閱讀這個免費的電子書:[Albahari](http://www.albahari.com/threading/) –
你是如何創建線程?線程池?線程類?你確切知道你想要停止或將要做什麼? –