简述Thread 类的构造函数的委托类型为哪2 个?
参考答案:
在C#中,Thread
类用于创建和控制线程。Thread
类有多个构造函数,但当我们谈论委托类型的构造函数时,我们主要关注那些接受委托作为参数的构造函数。这些委托类型主要用于指定线程应执行的方法。
以下是两个最常用的接受委托参数的 Thread
类构造函数:
Thread(ParameterizedThreadStart)
这个构造函数接受一个 ParameterizedThreadStart
委托作为参数。ParameterizedThreadStart
委托定义了一个方法,该方法接受一个 Object
参数并且没有返回值。这意味着你可以传递任何类型的对象给线程,并在线程启动时执行相应的方法。
示例:
public void MyMethod(object data)
{
// 线程执行的代码
}
// 创建并启动线程
Thread thread = new Thread(new ParameterizedThreadStart(MyMethod));
thread.Start(someData); // 传递数据给线程
Thread(ThreadStart)
这个构造函数接受一个 ThreadStart
委托作为参数。ThreadStart
委托定义了一个没有参数且没有返回值的方法。这意味着你不能直接传递数据给线程,但你可以在线程内部访问共享数据或全局变量。
示例:
public void MyMethod()
{
// 线程执行的代码
}
// 创建并启动线程
Thread thread = new Thread(new ThreadStart(MyMethod));
thread.Start();
这两个构造函数允许你以不同的方式指定线程应执行的方法,并提供了灵活性来传递数据给线程(在 ParameterizedThreadStart
的情况下)。选择使用哪个构造函数取决于你的具体需求,例如是否需要传递数据给线程以及数据的类型。