c# - 如何使用线程启动带参数的方法

标签 c# asp.net multithreading methods arguments

为了在 C# 中创建和启动新线程,我们的行为如下:

using System.Threading;

Thread thread = new Thread(new ThreadStart(WorkThreadFunction));
thread.Start();

public void WorkThreadFunction()
{
  //Stuff Here
}

但是带参数的方法呢?
对于这些方法,下面的代码有错误。

using System.Threading;

int a = 5;
int b = 6;
Thread thread = new Thread(new ThreadStart(WorkThreadFunction(a, b)));
thread.Start();


public void WorkThreadFunction(int a, int b)
{
  //Stuff Here
}

错误:

Method name expected

我需要将这些参数传递给那个方法!
解决办法是什么?

提前致谢

最佳答案

使用 lambda 表达式封装带参数的方法调用:

Thread thread = new Thread(new ThreadStart(() => WorkThreadFunction(a, b)));

关于c# - 如何使用线程启动带参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064236/

相关文章:

c# - VSPerfReader.dll 文件无法加载 VS2013

c# - 需要使用 jQuery getJSON 的工作示例

c# - Orderby 不工作

c# - 为什么 BackgroundWorker 的 WorkerReportsProgress 和 WorkerSupportsCancellation 的默认值是 false?

c# - 在C#.NET Web应用程序中记录并保存音频

c# - 如何使用 RazorEngine 引用 <img src/> 中的图像文件来生成 HTML 电子邮件

asp.net - 跨浏览器应用程序的最佳方式

尝试将 AsyncCallback 添加到 BeginInvoke() 时 C# 参数计数不匹配

java - 如何使用高tps、多线程向rabbitmq发布消息

无法使用 pthread_exit 终止线程