一、可以使用位於命名空間System.Threading中的Thrad類開啟線程: 1.通過Thread類的靜態屬性CurrentThread可以獲取執行當前函數所在的線程,通過實例屬性ManagedThreadId可以查看當前線程的唯一標識符ID,通過實例屬性Name可以獲取或設置當前線程的名稱; ...
一、可以使用位於命名空間System.Threading中的Thrad類開啟線程:
//聲明一個新的線程 Thread myThread = new Thread(LoopFunc); //傳遞一個ThreadStart類型的委托(public delegate void ThreadStart()) //開啟該線程 myThread.Start(); //迴圈函數 void LoopFunc() { while (true) { //do… Thread.Sleep(1000); //用於暫停執行此函數的線程,單位毫秒(千分之一秒) } }
1.通過Thread類的靜態屬性CurrentThread可以獲取執行當前函數所在的線程,通過實例屬性ManagedThreadId可以查看當前線程的唯一標識符ID,通過實例屬性Name可以獲取或設置當前線程的名稱;
2.通過Thread類的實例屬性Priority可以獲取或設置當前線程的優先順序,線程的優先順序使用枚舉ThreadPriority表示,包括從低到高共5個優先順序;
通過Thread類的實例屬性ThreadState可以獲取當前線程的狀態,線程的狀態使用枚舉組合ThreadState表示;
預設情況下,使用Thread類創建的線程都是前臺前程,通過Thread類的實例屬性IsBackground可以設置該線程是否為後臺線程;
二、當需要開啟一個無限迴圈函數的線程時,一般通過while(true){}來實現,此時,如要正確結束該線程,需要修改迴圈條件,通過外部控制條件是否終止:
void LoopFunc() { bool isContinue = true; AppManager.Instance.OnExitAction += () => //給應用關閉事件添加委托,修改執行的判斷條件 { isContinue = false; } while (isContinue) { //do… Thread.Sleep(1000); } return; }
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的認可是我寫作的最大動力!
作者:Minotauros
出處:https://www.cnblogs.com/minotauros/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。