首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 執行緒系列講座 (2):Thread 參數傳遞、前景/背景執行緒與 MyThread 封裝

     編輯:關於C語言

MyThread 封裝簡化參數傳遞


class NewThread : MyThread {
    private string p1; private int p2;
    public NewThread(string p1, int p2) { this.p1 = p1; this.p2 = p2; }
    public override void Run() { Console.WriteLine(p1); Console.WriteLine(p2); }
}
new NewThread("hello world", 4321).Start();

前景與背景執行緒

  • 前景執行緒:預設。進程存活至少需一前景執行緒;主執行緒為前景
  • 背景執行緒:IsBackground = true。所有前景執行緒結束即強制終止進程,不等待背景執行緒
  • 適用場景:短時工作 (Web 請求處理) 用背景;長時監聽/掃描用前景

Thread t = new Thread(MyMethod);
// t.IsBackground = true; // 取消註解變背景
t.Start();

若設為背景,主程式 3 秒 Sleep 後直接退出;否則等待 3 秒。

注意:必須在 Start() 前設定 IsBackground,啟動後不可變更。

透過 BeginInvoke 啟動的執行緒皆為背景執行緒。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved