Thread构造函数用于初始化 Thread 类的新实例。
共有四种重载方式:
1、Thread(ParameterizedThreadStart)
初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。
ParameterizedThreadStart:一个委托,它表示此线程开始执行时要调用的方法。调用的方法可以带参数。
using System;
using System.Threading;
public class Work
{
public static void Main()
{
// Start a thread that calls a parameterized static method.
Thread newThread = new Thread(Work.DoWork);
newThread.Start(42);
// Start a thread that calls a parameterized instance method.
Work w = new Work();
newThread = new Thread(w.DoMoreWork);
newThread.Start("The answer.");
}
public static void DoWork(object data)
{
Console.WriteLine("Static thread procedure. Data='{0}'",
data);
}
public void DoMoreWork(object data)
{
Console.WriteLine("Instance thread procedure. Data='{0}'",
data);
}
}
// This example displays output like the following:
// Static thread procedure. Data='42'
// Instance thread procedure. Data='The answer.'
2、Thread(ParameterizedThreadStart, Int32)
初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托,并指定线程的最大堆栈大小。
3、Thread(ThreadStart)
初始化 Thread 类的新实例。
ThreadStart:表示开始执行此线程时要调用的方法的 ThreadStart 委托。调用的方法只能是无返回值、无参数的方法。
using System; using System.Threading; class Test { static void Main() { Thread newThread = new Thread(new ThreadStart(Work.DoWork)); newThread.Start(); } } class Work { Work() {} public static void DoWork() {} }
4、Thread(ThreadStart, Int32)
初始化 Thread 类的新实例,指定线程的最大堆栈大小。
注意Thread(ParameterizedThreadStart)和Thread(ThreadStart)的区别,前者可以用于带参数的方法,后者只能用于无返回值、无参数的方法。