Thread 中 Susend()和Resume過時的解決辦法
阿新 • • 發佈:2018-11-30
在C#中對執行緒進行暫停時 發現Suspend()和Resume()過時,找了最後發現這樣可以比較簡單的解決這個問題
private static bool State = true; static AutoResetEvent ResetThr = new AutoResetEvent(false); //後臺執行緒執行的方法 public static void Add() { while (true) { for (int i = 0; i < 1000; i++) { if (!State) { ResetThr.WaitOne(); } Console.WriteLine(i); Thread.Sleep(500); i++; } } } //暫停 public static void Stop() { State = false; } //繼續 public static void Continue() { State = true; ResetThr.Set(); }
這樣做的另外好處是可以很明確的設定暫停位,以防在程式不想停止的地方將執行緒掛起.