多執行緒專題之3-ThreadAPI使用
阿新 • • 發佈:2021-08-09
- 1、執行緒暫停 thread.Suspend()
- 2、執行緒恢復執行 thread.Resume()
- 3、執行緒停止 thread.Abort()
- 4、停止的執行緒恢復執行 Thread.ResetAbort()
- 5、執行緒等待 thread.sleep()和thread.join()
- 6、執行緒的優先順序 thread1.Priority
Thread thread = new Thread(DoSomethingNoParam); //threadstart threadstart = new threadstart(dosomethingnoparam); //thread thread = new thread(threadstart); thread.Start(); //1、執行緒暫停 thread.Suspend(); //2、執行緒恢復執行 thread.Resume(); //3、執行緒停止 //注意:執行緒停止只是子執行緒對外丟擲一個異常,因為執行緒是無法從外部去停止的(上帝最大,別人不允許控制它) thread.Abort(); //4、停止的執行緒恢復執行 Thread.ResetAbort(); //5、執行緒等待 //5.1 thread.sleep() { while (thread.ThreadState != ThreadState.Stopped) { Thread.Sleep(3000); } } //5.2 thread.join() { thread.Join();//等待執行緒中的內容執行完,繼續往後執行 thread.Join(3000);//等待3000毫秒,過時不候 thread.Join(TimeSpan.FromMilliseconds(3000));//等待3000毫秒,過時不候 同上 } //6、執行緒的優先順序 //注意:執行緒優先順序只是提高了它被優先執行的概率,並不一定能保證優先執行 { Thread thread1 = new Thread(DoSomethingNoParam); //執行緒優先順序最高 thread1.Priority = ThreadPriority.Highest; Thread thread2 = new Thread(DoSomethingNoParam); //執行緒優先順序最低 thread1.Priority = ThreadPriority.Lowest; thread1.Start(); thread2.Start(); }