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

C# 執行緒系列講座 (2):Thread 參數傳遞完整指南

     編輯:關於C語言

ParameterizedThreadStart 委派


[ComVisible(false)]
public delegate void ParameterizedThreadStart(object obj);
public Thread(ParameterizedThreadStart start);

靜態方法傳遞單一參數


static void ParamMethod(object obj) => Console.WriteLine(obj);
static void Main() {
    new Thread(ParamMethod).Start("委派參數傳值");
}

注意事項

  • 無參數委派 (ThreadStart) 不可呼叫帶參數 Start(obj),會拋出例外
  • 帶參數委派可呼叫無參數 Start(),參數接收 null

封裝類別傳遞多參數


class MyData {
    private string d1; private int d2;
    public MyData(string d1, int d2) { this.d1 = d1; this.d2 = d2; }
    public void ThreadMethod() { Console.WriteLine(d1); Console.WriteLine(d2); }
}
new Thread(new MyData("abcd", 1234).ThreadMethod).Start();

MyThread 基底類別


abstract class MyThread {
    private Thread thread;
    public abstract void Run();
    public void Start() {
        if (thread == null) thread = new Thread(Run);
        thread.Start();
    }
}

繼承 MyThread 並覆寫 Run() 即具備多執行緒能力,建構函式可注入任意複雜參數。

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