异步等级的通用方法在类库中

时间:2015-12-20 16:13:51

标签: c# async-await class-library

是否可以在Dot Net 4.0类库中编写通用异步方法?

提出此问题的理由
因为那样我就可以在任何针对.Net 4.0的项目中使用这个dll。甚至可以在IDE中使用,例如VS 2010,它不支持等待和异步关键字。

问题
我的问题是我的主要应用程序代码是在.Net 4.0中我使用的是VS 2010.我在想我将使用VS 2012来创建一个通用的dll,我可以在我的主代码中引用它并使用它。

在我的应用程序中有一些代码花费时间并且在UI线程中引发,导致我的应用程序挂起。如果我可以实现我想要的,那么这些同步调用将不会挂起UI。

像这样的东西

public static class AsyncHelpers
{
    public static async Task<T> RunMethodAsync<T>()
    {
        //What to do here?
    }
}

1 个答案:

答案 0 :(得分:2)

您可以在面向.NET 4.0的项目中使用async / await;您只需要引用Microsoft.Bcl.Async NuGet包,它提供了必要的类型。当然,您还需要C#5(或更高版本)编译器,这意味着VS2012或更新版本。