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類型

Tags: