【问题标题】:How Start Methods With Arguments Using Thread如何使用线程启动带参数的方法
【发布时间】:2023-03-13 22:58:03
【问题描述】:

对于在 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
}

错误:

需要方法名

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

提前致谢

【问题讨论】:

标签: c# asp.net multithreading methods arguments


【解决方案1】:

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

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

【讨论】:

  • ParameterizedThreadStart。请参阅 Chris Gessler 评论中的链接答案。
猜你喜欢
  • 2012-07-12
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 2011-07-07
  • 2020-09-18
  • 1970-01-01
相关资源
最近更新 更多