我正在开发一个帖子。我有一个方法:
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));
答案 0 :(得分:2)
您可以使用ParameterizedThreadStart并将int type参数更改为object并将其强制转换为int。
private int Calculate(object number)
{
int num = Convert.ToInt32(number);
}
答案 1 :(得分:2)
您可以使用lambdas,编译器将推断其类型:
Thread t = new Thread(() => Calculate(number));
答案 2 :(得分:2)
捕获的变量运作良好:
int number = 42;
var thread = new Thread(() => Calculate(number));