淺析.Net下的多線程編程
多線程是許多操作系統所具有的特性,它能大大提高程序的運行效率,所以多線程編程技術為編程者廣泛關注。目前微軟的.Net戰略正進一步推進,各種相關的技術正為廣大編程者所接受,同樣在.Net中多線程編程技術具有相當重要的地位。本文我就向大家介紹在.Net下進行多線程編程的基本方法和步驟。
開始新線程
在.Net下創建一個新線程是非常容易的,你可以通過以下的語句來開始一個新的線程:
Thread thread = new Thread (new ThreadStart (ThreadFunc));
thread.Start ();
第一條語句創建一個新的Thread對象,並指明了一個該線程的方法。當新的線程開始時,該方法也就被調用執行了。該線程對象通過一個System..Threading.ThreadStart類的一個實例以類型安全的方法來調用它要調用的線程方法。
第二條語句正式開始該新線程,一旦方法Start()被調用,該線程就保持在一個"alive"的狀態下了,你可以通過讀取它的IsAlive屬性來判斷它是否處於"alive"狀態。下面的語句顯示了如果一個線程處於"alive"狀態下就將該線程掛起的方法:
if (thread.IsAlive) {
thread.Suspend ();
}
不過請注意,線程對象的Start()方法只是啟動了該線程,而並不保證其線程方法ThreadFunc()能立即得到執行。它只是保證該線程對象能被分配到CPU時間,而實際的執行還要由操作系統根據處理器時間來決定。
一個線程的方法不包含任何參數,同時也不返回任何值。它的命名規則和一般函數的命名規則相同。它既可以是靜態的(static)也可以是非靜態的(nonstatic)。當它執行完畢後,相應的線程也就結束了,其線程對象的IsAlive屬性也就被置為false了。下面是一個線程方法的實例:
public static void ThreadFunc()
{
for (int i = 0; i <10; i++) {
Console.WriteLine("ThreadFunc {0}", i);
}
}
前台線程和後台線程