C#创建线程带参数的方法,可以通过委托和Lambda表达式实现。以下是详细的攻略:
委托和Lambda表达式的简介
委托是C#中一个非常重要的概念,它是一种指向方法的指针,能够在需要的时候再调用这个方法。Lambda表达式是C#3.0引入的一项新特性,它是一种简化创建委托的语法。Lambda表达式实质是一个匿名函数,总是由多个参数,一个箭头符号和一个表达式组成。例如:(x, y) => x + y
表示一个接收两个参数x和y,返回它们的和的Lambda表达式。
方法一:使用ThreadStart委托
首先,需要定义一个接收参数的方法,例如:
static void Print(object message)
{
Console.WriteLine("Received message: " + message);
}
然后,在创建线程之前,需要使用ThreadStart委托来指向这个方法。例如:
Thread thread = new Thread(new ThreadStart(() => Print("Hello, World!")));
这里使用了Lambda表达式简化了代码。将Print方法作为参数传入ThreadStart构造函数中,并在Lambda表达式中调用这个构造函数。在启动线程之前,需要调用Start方法。例如:
thread.Start();
此时线程开始执行,将会输出“Received message: Hello, World!”。
方法二:使用ParameterizedThreadStart委托
ParameterizedThreadStart委托与ThreadStart委托的区别在于,它可以接收一个object类型的参数。例如:
static void Print(object message)
{
Console.WriteLine("Received message: " + message);
}
Thread thread = new Thread(new ParameterizedThreadStart(Print));
thread.Start("Hello, World!");
这里将Print方法作为参数传入ParameterizedThreadStart构造函数中,并在启动线程之前,使用Start方法传入一个参数。线程开始执行,将会输出“Received message: Hello, World!”。
通过以上两个方法,可以轻松创建带参数的线程。需要注意的是,当线程方法需要返回值时,可以使用委托中的Func
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#创建线程带参数的方法 - Python技术站