程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#的多線程機制探索(2)

C#的多線程機制探索(2)

編輯:關於C語言

二.操縱一個線程

任何程序在執行時,至少有一個主線程,下面這段小程序可以給讀者一個直觀的印象:

//SystemThread.cs
using System;
using System.Threading;
namespace ThreadTest
{
  class RunIt
  {
    [STAThread]
    static void Main(string[] args)
    {
      Thread.CurrentThread.Name="System Thread";//給當前線程起名為"System Thread"
Console.WriteLine(Thread.CurrentThread.Name+"'Status:"+Thread.CurrentThread.ThreadState);
      Console.ReadLine();
    }
  }
}

編譯執行後你看到了什麼?是的,程序將產生如下輸出:

System Thread's Status:Running

在這裡,我們通過Thread類的靜態屬性CurrentThread獲取了當前執行的線程,對其Name屬性賦值“System Thread”,最後還輸出了它的當前狀態(ThreadState)。所謂靜態屬性,就是這個類所有對象所公有的屬性,不管你創建了多少個這個類的實例,但是類的靜態屬性在內存中只有一個。很容易理解CurrentThread為什麼是靜態的——雖然有多個線程同時存在,但是在某一個時刻,CPU只能執行其中一個。

就像上面程序所演示的,我們通過Thread類來創建和控制線程。注意到程序的頭部,我們使用了如下命名空間:

  using System;
  using System.Threading;

在.Net framework class library中,所有與多線程機制應用相關的類都是放在System.Threading命名空間中的。其中提供Thread類用於創建線程,ThreadPool類用於管理線程池等等,此外還提供解決了線程執行安排,死鎖,線程間通訊等實際問題的機制。如果你想在你的應用程序中使用多線程,就必須包含這個類。Thread類有幾個至關重要的方法,描述如下:

Start():啟動線程

Sleep(int):靜態方法,暫停當前線程指定的毫秒數

Abort():通常使用該方法來終止一個線程

Suspend():該方法並不終止未完成的線程,它僅僅掛起線程,以後還可恢復。

Resume():恢復被Suspend()方法掛起的線程的執行

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved