2014-06-12 39 views
-1
Thread thr1 = new Thread(new ThreadStart(Thread1)); 
Thread thr2 = new Thread(new ThreadStart(Thread2)); 
Thread thr3 = new Thread(new ThreadStart(Thread3)); 
Thread thr4 = new Thread(new ThreadStart(Thread4)); 
Thread thr5 = new Thread(new ThreadStart(Thread5)); 

thr1.Start(); 
thr2.Start(); 
thr3.Start(); 
thr4.Start(); 
thr5.Start(); 

我想在1000毫秒後停止每個線程。如何在定義特定時間後中止多線程中的線程?

+0

因此,確保無論每個ThreadX正在運行,它在1000毫秒內完成。不要中止線程。永遠。 – spender

回答

1

線程不能這樣工作。這裏是你可以做什麼的清單:

  • 給工作線程少量的,所以它在約1秒鐘內完成(這不,雖然最好的選擇)從WaitHandle衍生
  • 使用volatile bool或類取消工作線程
  • 支持取消使用類:TaskBackgroundWorker

在任何情況下,不叫thread.Abort,因爲它可能處於不穩定的狀態讓你的應用程序。

+0

我想在完成四分鐘執行後停止這五個線程。 – user3567592

+0

@ user3567592然後選項2和3對你有好處。你可以使用一個計時器,在四分鐘內打勾。在計時器已過的事件上,您可以「取消」工作線程。 – oleksii

+0

非常感謝。現在我已經使用BackgroundWorker。 – user3567592

相關問題