C#中多線程Tread的使用(推薦)
首先是概念,什么是線程?
線程是操作系統(tǒng)分配CPU時間的基本單元,在一個進程中可以有多個線程同時執(zhí)行代碼。
談一談什么是進程?
簡單的說,一個正在運行的應用程序可以視為一個進程,進程間相互獨立,資源不共享,一個進程的運行失敗不會影響另一個進程的運行,一個進程可以啟動多個線程。
進程入口執(zhí)行的第一個線程被視為主線程。在.Net應用程序中,Main方法作為入口函數(shù),被調(diào)用時會啟動一個主線程。
在任務管理器中可以看到進程和線程的運行數(shù)量

多線程:在宏觀角度來看是多個線程并發(fā)執(zhí)行。從微觀角度來看,同一時間只能有一個線程執(zhí)行。
線程的創(chuàng)建(Tread)
using System.Threading;
Thread thread=new Thread(ThreadTest);//創(chuàng)建無參數(shù)線程
Thread thread2=new Thread(ThreadTest2);//創(chuàng)建有參數(shù)線程
thread.Start(); //啟動線程
thread2.Start("aaa"); //啟動有參線程
public void ThreadTest()
{
return;
}
//注意:參數(shù)的類型必須是Object 否則無法作為delegate成為Theard的參數(shù)
public void ThreadTest(Object obj)
{
return;
}同一個線程不可以兩次調(diào)用start,會拋出異常
根據(jù)線程的生命周期來看,只有New狀態(tài)的Thread才可以調(diào)用Start方法,如果已經(jīng)啟動,那么此線程就不是New狀態(tài)了,而是Running狀態(tài)

報錯提醒:No overload for 'method' matches delegate 'delegate'
調(diào)用的delegate的參數(shù)不是Object類型
到此這篇關于C#中多線程的使用Tread的文章就介紹到這了,更多相關C#多線程使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C# 數(shù)據(jù)庫鏈接字符串加密解密工具代碼詳解
本文通過代碼給大家介紹C# 數(shù)據(jù)庫鏈接字符串加密解密工具的相關知識,實現(xiàn)思路大概是使用兩個數(shù)對連接字符串進行加密,再用這兩個數(shù)進行解密,具體詳細代碼,大家參考下本文2018-05-05
C#?wpf?Bitmap轉換成WriteableBitmap的方法
本文主要介紹了C#?wpf?Bitmap轉換成WriteableBitmap的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08
C#中StringBuilder用法以及和String的區(qū)別分析
當我們在初學使用C#時,常常會不知道該用StringBuilder合適還是用String高效,下面是我在學習當中對StringBuilder和String的區(qū)別總結,分享給大家。2013-03-03
利用Aspose.Cells和Excel模板導出統(tǒng)計數(shù)據(jù)
這篇文章主要為大家詳細介紹了利用Aspose.Cells和Excel模板導出復雜的統(tǒng)計數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12

