C#创建含参线程
在C#中,可以使用ParameterizedThreadStart委托来创建含参线程。ParameterizedThreadStart委托表示一个方法,该方法接受一个object类型的参数,并且没有返回值。
下面是一个示例代码,演示如何创建含参线程:
using System;
using System.Threading;
class Program
{
static void Main()
{
// 创建一个线程,并指定传递参数的方法
Thread thread = new Thread(new ParameterizedThreadStart(DoWork));
// 启动线程,并传递参数
thread.Start("Hello, World!");
Console.WriteLine("主线程执行其他操作...");
// 等待线程执行完毕
thread.Join();
Console.WriteLine("主线程执行完毕。");
}
static void DoWork(object parameter)
{
// 从参数中获取传递的值
string message = (string)parameter;
Console.WriteLine("子线程开始执行,传递的参数为:" + message);
// 执行一些耗时的操作
Thread.Sleep(2000);
Console.WriteLine("子线程执行完毕。");
}
}
在上面的示例中,首先创建了一个线程,并使用ParameterizedThreadStart委托将参数传递给DoWork方法。然后启动线程,并在主线程中执行其他操作。最后,使用Join方法等待线程执行完毕,并输出相应的信息。
运行上面的代码,可以看到输出的顺序是先执行主线程的操作,然后执行子线程的操作,最后主线程执行完毕。
注意:在使用ParameterizedThreadStart委托传递参数时,需要进行类型转换,因为参数是以object类型传递的。在实际应用中,可以根据需要自定义传递的参数类型
原文地址: https://www.cveoy.top/t/topic/iClT 著作权归作者所有。请勿转载和采集!