程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#線程系列講座(2):Thread類的應用(4)

C#線程系列講座(2):Thread類的應用(4)

編輯:關於C語言

如果使用在第二節定義的MyThread類,傳遞參數會顯示更簡單 ,代碼如下:

class NewThread : MyThread
{
private String p1;
private int p2;
public NewThread(String p1, int p2)
{
this.p1 = p1;
this.p2 = p2;
}
override public void run()
{
Console.WriteLine(p1);
Console.WriteLine(p2);
}
}
NewThread newThread = new NewThread("hello world", 4321);
newThread.start();

四 、前台和後台線程

使用Thread建立的線程默認情況下是前台線程,在進程 中,只要有一個前台線程未退出,進程就不會終止。主線程就是一個前台線程。 而後台線程不管線程是否結束,只要所有的前台線程都退出(包括正常退出和異 常退出)後,進程就會自動終止。一般後台線程用於處理時間較短的任務,如在 一個Web服務器中可以利用後台線程來處理客戶端發過來的請求信息。而前台線程 一般用於處理需要長時間等待的任務,如在Web服務器中的監聽客戶端請求的程序 ,或是定時對某些系統資源進行掃描的程序。下面的代碼演示了前台和後台線程 的區別。

public static void myStaticThreadMethod()
{
Thread.Sleep(3000);
}
Thread thread = new Thread(myStaticThreadMethod);
// thread.IsBackground = true;
thread.Start();

如果運行上面的代碼,程序會等待3秒後退出 ,如果將注釋去掉,將thread設成後台線程,則程序會立即退出。

要注意 的是,必須在調用Start方法之前設置線程的類型,否則一但線程運行,將無法改 變其類型。

通過BeginXXX方法運行的線程都是後台線程。

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