C# 5.0 中的异步泛型委托

发布于 2024-12-20 06:22:58 字数 333 浏览 1 评论 0原文

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

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 规范或这方面的任何帮助。有谁知道如何写或者不能写以及为什么?

谢谢!

With Iterators, the following generic delegate is possible:

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

With the new async/await in C# 5.0 CTP, I expect to be able to create the analogous delegate as follows:

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

I can't find the C# 5.0 spec or any help in this regard. Anyone know how this can be written or if it can't be written and why?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怕倦 2024-12-27 06:22:58

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

任何返回“awaitable”的方法(例如 TaskTask)都可以与 await 一起使用。

因此,“异步委托”可以是返回 TaskTask (或任何其他类型的可等待)的委托类型。在你的情况下:

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

async is an implementation detail, not an interface specification. An async delegate doesn't make sense.

Any method that returns an "awaitable" (such as Task or Task<T>) can be used with await.

So an "asynchronous delegate" would be any delegate type that returns Task or Task<T> (or any other kind of awaitable). In your case:

public delegate Task<TOut> MyDelegate<TIn, TOut>(TIn param1);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文