C#5.0中的异步通用委托

Jas*_*ban 2 c#-5.0 async-ctp

使用迭代器,可以使用以下通用委托:

public delegate IEnumerable<TOut> MyDelegate<TIn>(TIn param1);
Run Code Online (Sandbox Code Playgroud)

使用C#5.0 CTP中的新async/await,我希望能够创建类似的委托,如下所示:

public delegate async TOut MyDelegate<TIn>(TIn param1);
Run Code Online (Sandbox Code Playgroud)

我找不到C#5.0规范或这方面的任何帮助.任何人都知道如何写这个或者如果它不能写,为什么?

谢谢!

Ste*_*ary 5

async是实现细节,而不是接口规范.一个async代表就没有意义了.

任何返回"等待"(例如TaskTask<T>)的方法都可以使用await.

因此,"异步委托"将是返回的任何委托类型TaskTask<T>(或任何其他类似的等待).在你的情况下:

public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);
Run Code Online (Sandbox Code Playgroud)