C#5.0中的异步通用委托

时间:2011-12-06 21:39:06

标签: async-ctp c#-5.0

使用Iterators,可以使用以下通用委托:

public delegate IEnumerable<TOut> MyDelegate<TIn>(TIn param1);

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

public delegate async TOut MyDelegate<TIn>(TIn param1);

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

谢谢!

1 个答案:

答案 0 :(得分:5)

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

任何返回&#34;等待&#34; (例如TaskTask<T>)可与await一起使用。

所以&#34;异步委托&#34;将是返回TaskTask<T>(或任何其他类似的等待)的任何委托类型。在你的情况下:

public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);