c#async等待实现

Mas*_*ile 2 c# concurrency async-await

我对C#即将推出的异步/等待功能的设计有些怀疑.

  1. 将新机制附加到的便利性 Task<T>
  2. 我认为最好使用async替换await关键字.对于expaple:var result = async GetResultAsync();
  3. 使用令牌取消正在进行的异步操作的机制并不像我认为的那样优雅.

Async/away是一个很棒的功能,但我认为它不像LINQ那样设计得很好.此外,我觉得设计团队对当前的设计非常满意; 并且可能不会考虑社区反馈.

你怎么看?

Han*_*ant 7

在您尝试自己完成这项工作之前,这些设计决策往往毫无意义.您的任务:编写异步代码并随时停止.您的约束:您不能使用Thread.Abort()并且永远不会导致死锁.


Eri*_*ert 6

Async/away是一个很棒的功能,但我认为它不像LINQ那样设计得很好.

与LINQ的设计过程相比,您认为设计过程的哪些方面存在缺陷?

此外,我觉得设计团队对当前的设计非常满意; 并且可能不会考虑社区反馈.

什么给你这样的印象?我们一直在邀请社区反馈一段时间了.它没有被忽视.

你怎么看?

我认为这是一个讨论问题,而不是一个工程问题.你确定这是这个问题的正确网站吗?

  • @Masterile:这不是讨论各种技术的利弊的讨论板; 它是关于*工程问题*的*特定*问题的问答网站.如果您想提供反馈或讨论C#和VB中任务异步模式的优点,那么就有一个特定的站点:http://social.msdn.microsoft.com/Forums/en-US/异步.这是讨论的适当场所. (7认同)
  • 这个答案不是正确的网站吗?工程师的答案很合适.我个人认为在我见过的大多数例子中,CancellationToken都被忽略了.将这个轮子设置在运动中并保持手指在背后交叉以使其达到良好的结果是异步代码的现实世界问题的90%.但是,是的,很难在显式状态机的替代方案上引入假设.它仍然闪亮.我喜欢一篇关于如何在实际代码中使用async功能*而不使用CancellationToken的博客文章.思考形式或窗口. (2认同)