C# ThreadPool 等待结果

标签 c# .net multithreading compiler-errors

我想要一个类似的功能:

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/

相关文章:

c# - 如何设置 SSL 环境来测试 C# 远程处理?

c# - 在 C# 中创建匿名对象的 Java 等价物是什么?

c# - 尝试激活登录 Controller 时无法解析 IdentityUserManager 类型的服务

c# - 如何让 XmlSerializer 忽略某种类型的所有成员?

multithreading - 管理动态线程数

android - 如何将 byte[] 类型的参数传递给 AsyncTask 函数?

python - 线程不同时运行。 (Python)

c# - 在 MVVM 中的 View 和 View 模型之间共享对象

.net - MVC4 风格捆绑给出 403

c# - .NET 线程如何等待不属于任何线程的 syncblk?