跳到主要内容

简述Thread 类的构造函数的委托类型为哪2 个?

参考答案:

在C#中,Thread 类用于创建和控制线程。Thread 类有多个构造函数,但当我们谈论委托类型的构造函数时,我们主要关注那些接受委托作为参数的构造函数。这些委托类型主要用于指定线程应执行的方法。

以下是两个最常用的接受委托参数的 Thread 类构造函数:

  1. Thread(ParameterizedThreadStart)

这个构造函数接受一个 ParameterizedThreadStart 委托作为参数。ParameterizedThreadStart 委托定义了一个方法,该方法接受一个 Object 参数并且没有返回值。这意味着你可以传递任何类型的对象给线程,并在线程启动时执行相应的方法。

示例:

public void MyMethod(object data)
{
    // 线程执行的代码
}

// 创建并启动线程
Thread thread = new Thread(new ParameterizedThreadStart(MyMethod));
thread.Start(someData); // 传递数据给线程
  1. Thread(ThreadStart)

这个构造函数接受一个 ThreadStart 委托作为参数。ThreadStart 委托定义了一个没有参数且没有返回值的方法。这意味着你不能直接传递数据给线程,但你可以在线程内部访问共享数据或全局变量。

示例:

public void MyMethod()
{
    // 线程执行的代码
}

// 创建并启动线程
Thread thread = new Thread(new ThreadStart(MyMethod));
thread.Start();

这两个构造函数允许你以不同的方式指定线程应执行的方法,并提供了灵活性来传递数据给线程(在 ParameterizedThreadStart 的情况下)。选择使用哪个构造函数取决于你的具体需求,例如是否需要传递数据给线程以及数据的类型。