1. 程式人生 > >.NET多執行緒技術詳解(2) 建立、終止執行緒

.NET多執行緒技術詳解(2) 建立、終止執行緒

System.Threading 名稱空間提供支援多執行緒程式設計的類和介面,使您可以輕鬆地執行建立和啟動新執行緒,同步多個執行緒,掛起執行緒以及中止執行緒等任務。

Thread類有幾個至關重要的方法,描述如下:Start():啟動執行緒;
Sleep(int)
:靜態方法,暫停當前執行緒指定的毫秒數;
Abort()
:通常使用該方法來終止一個執行緒;
Suspend()
:該方法並不終止未完成的執行緒,它僅僅掛起執行緒,以後還可恢復;
Resume()
:恢復被Suspend()方法掛起的執行緒的執行;

(1) 建立

若要在 C# 程式碼中合併執行緒處理,只需建立一個將在主執行緒外執行的函式,並讓一個新的 Thread

物件指向該函式即可。

System.Threading.Thread newThread;

newThread = new System.Threading.Thread(anObject.AMethod); //建立執行緒例項newThread,其指向anObject物件的AMethod方法

newThread.Start();//啟動執行緒

下面以一個實際運用的例子介紹執行緒基本操作。此示例目的是將一個大規模的運算置於後臺進行。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;

namespace ThreadStudyw

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Thread t=new Thread(new ThreadStart(this.s));

t.Start();//如果不以輔助執行緒執行s函式,窗體將處於等待狀態,無法響應請求,待執行完成後方在標籤上顯示“結束了”

//而以輔助執行緒後臺執行,則直接執行顯示“結束了”

label1.Text = "結束了";

}

private void s()

{

for(int i=0;i<100000;i++)

for (int j = 0; j < 1000000; j++)

{

}

}

}

}

2)終止

正常情況下,當函式執行完,輔助執行緒自動終止。

也可以呼叫Abort()方法,終止執行緒,該方法將引發ThreadAbortException異常。

Abort 方法不直接導致執行緒中止,因為目標執行緒可捕捉 ThreadAbortException 並在 finally 塊中執行任意數量的程式碼。