C#-多執行緒的使用Tread
首先是概念,什麼是執行緒?
執行緒是作業系統分配CPU時間的基本單元,在一個進程中可以有多個執行緒同時執行程式碼。
談一談什麼是進程?
簡單的說,一個正在運行的應用程式可以視為一個進程,進程間相互獨立,資源不共享,一個進程的運行失敗不會影響另一個進程的運行,一個進程可以啟動多個執行緒。
進程入口執行的第一個執行緒被視為主執行緒。在.Net應用程式中,Main方法作為入口函數,被調用時會啟動一個主執行緒。
在任務管理器中可以看到進程和執行緒的運行數量
多執行緒:在宏觀角度來看是多個執行緒並發執行。從微觀角度來看,同一時間只能有一個執行緒執行。
執行緒的創建(Tread)
using System.Threading; Thread thread=new Thread(ThreadTest);//創建無參數執行緒 Thread thread2=new Thread(ThreadTest2);//創建有參數執行緒 thread.Start(); //啟動執行緒 thread2.Start("aaa"); //啟動有參執行緒 public void ThreadTest() { return; } //注意:參數的類型必須是Object 否則無法作為delegate成為Theard的參數 public void ThreadTest(Object obj) { return; }
同一個執行緒不可以兩次調用start,會拋出異常
根據執行緒的生命周期來看,只有New狀態的Thread才可以調用Start方法,如果已經啟動,那麼此執行緒就不是New狀態了,而是Running狀態
報錯提醒:No overload for ‘method’ matches delegate ‘delegate’
調用的delegate的參數不是Object類型