我想要一个类似的功能:
public static V callAsyncAndWait<V>(Func<V> func)
{
ThreadPool.QueueUserWorkItem(obj =>
{
V v = func.Invoke();
});
return v;
}
显然这段代码无法编译。我想要的是在另一个线程中运行 Func 并返回结果。我怎样才能做到这一点?
最佳答案
我建议您改用新的 .NET 4.0 Task
类。以下是有关如何从 Task
执行返回结果的教程:http://msdn.microsoft.com/en-us/library/dd537613.aspx
实际上,您有一个非常方便的属性,称为Result
,在调用 getter 时,它将阻塞,直到结果可用。
关于C# ThreadPool 等待结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9004692/