C#使用参数在方法上获取多线程

时间:2014-07-13 11:33:30

标签: c# multithreading

我有一个带有3个参数的方法,我想为它创建一个线程。我知道如何为没有任何参数和对象类型参数的方法创建一个线程。方法标题是:

public void LoadData(DataGridView d, RadioButton rb1, RadioButton rb2){
//} 

3 个答案:

答案 0 :(得分:2)

除了Tzah的答案,你不提线程的生命时间和管理。这是一个思考它的好地方 - 只要你写出高质量的代码..

如果您使用3个参数以上的线程池中的线程,请使用我之前的答案:C# - ThreadPool QueueUserWorkItem Use?

如果您使用.Net 4.0+,请考虑使用任务

答案 1 :(得分:1)

您可以像这样使用Lambda Expression

new Thread(() => LoadData(var1, var2, var3)).Start();

Thread T1 = new Thread(() => LoadData(var1, var2, var3));
T1.Start();

答案 2 :(得分:1)

由于Tzah的答案肯定会有效,因此在.NET Framework中使用线程的推荐方法现在位于Task Parallel Library。 TPL提供了ThreadPool的抽象,它管理一个线程池供我们使用,而不是创建和销毁,这具有非负的成本。它们可能不适合各种卸载工作(例如非常长时间运行的CPU消耗任务),但它们肯定会涵盖大多数情况。

与使用TPL的请求相当的示例是使用Task.Run

Task task = Task.Run(() => LoadData(var1, var2, var3));