<分区>
Possible Duplicate:
Access return value from Thread.Start()'s delegate function
public string sayHello(string name)
{
return "Hello ,"+ name;
}
如何在 Thread 中使用这个方法?
ThreadStart 方法只接受 void 方法。
我在等你的帮助。 谢谢。
<分区>
Possible Duplicate:
Access return value from Thread.Start()'s delegate function
public string sayHello(string name)
{
return "Hello ,"+ name;
}
如何在 Thread 中使用这个方法?
ThreadStart 方法只接受 void 方法。
我在等你的帮助。 谢谢。
最佳答案
ThreadStart
不仅期望 void 方法,还期望它们不接受任何参数!您可以将其包装在 lambda、匿名委托(delegate)或命名静态函数中。
这是一种实现方式:
string res = null;
Thread newThread = new Thread(() => {res = sayHello("world!");});
newThread.Start();
newThread.Join(1000);
Console.Writeline(res);
这是另一种语法:
Thread newThread = new Thread(delegate() {sayHello("world!");});
newThread.Start();
第三种语法(带有命名函数)最无聊:
// Define a "wrapper" function
static void WrapSayHello() {
sayHello("world!);
}
// Call it from some other place
Thread newThread = new Thread(WrapSayHello);
newThread.Start();
关于C#线程方法返回一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860141/