c#重點知識詳解(六)

來源:互聯網
上載者:User

如同java一樣,在c#中寫一個多線程應用是非常簡單的,本章將介紹如何在c#種開發多線程程式。在.net中線程是由System.Threading 名字空間所定義的。所以你必須包含這個名字空間。
using System.Threading;

開始一個線程

System.Threading 名字空間的線程類描述了一個線程對象,通過使用類對象,你可以建立、刪除、停止及恢複一個線程。建立一個新線程通過new 操作,並可以通過start()方法啟動線程

thread = new Thread(new ThreadStart(HelloWorld));
thread.Start();

注意:和java程式不同,建立新線程並調用start()方法後並不去調用run()方法,而是傳遞線程調用程式

下面是啟動線程執行的函數

protected void HelloWorld()
{
string str ;
Console.write("helloworld");
}
}

殺死一個線程

線程類的 Abort()方法可以永久的殺死一個線程。在殺死一個線程起前應該判斷線程是否在生存期間。

if ( thread.IsAlive )
{
thread.Abort();
}

停止一個線程

Thread.Sleep 方法能夠在一個固定周期類停止一個線程

thread.Sleep();

設定線程優先順序

線程類中的ThreadPriority 屬性是用來設定一個ThreadPriority的優先順序別。線程優先順序別包括Normal, AboveNormal, BelowNormal, Highest, and Lowest幾種。

thread.Priority = ThreadPriority.Highest;

掛起一個線程

調用線程類的Suspend()方法將掛起一個線程直到使用Resume()方法喚起她。在掛起一個線程起前應該判斷線程是否在活動期間。

if (thread.ThreadState = ThreadState.Running )
{
thread.Suspend();
}

喚起一個線程

通過使用Resume()方法可以喚起一個被掛起線程。在掛起一個線程起前應該判斷線程是否在掛起期間,如果
線程未被掛起則方法不起作用。

if (thread.ThreadState = ThreadState.Suspended )
{
thread.Resume();
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.