1. 程式人生 > 其它 >多執行緒專題之3-ThreadAPI使用

多執行緒專題之3-ThreadAPI使用

  • 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();
                }