3

我正在研究一个线程。我有一个方法:

private int Calculate(int number);
can I used this method in a thread ?
Thread t = new Thread(new ThreadStart(Calculate));

我们不能这样做,因为 ThreadStart() 只接受 void 方法。那么,有没有办法使用线程来处理它?另外,如果 Calculate 是 void 方法,我如何传递参数

thread t = new Thread(new ThreadStart(Calculate));
4

3 回答 3

2

您可以使用ParameterizedThreadStart并将 int 类型参数更改为 object 并将其转换回 int。

private int Calculate(object number)
{
   int num = Convert.ToInt32(number);
}
于 2013-04-14T14:29:50.227 回答
2

您可以使用 lambda,编译器将推断其类型:

Thread t = new Thread(() => Calculate(number));
于 2013-04-14T14:34:27.107 回答
2

捕获的变量运行良好:

  int number = 42;
  var thread = new Thread(() => Calculate(number));
于 2013-04-14T14:35:38.097 回答