【发布时间】:2011-02-07 21:04:14
【问题描述】:
我有一个问题,即可以使用什么机制来取消正在进行的异步操作,而不是使用 async/await 上下文中的取消令牌。我确信这是一个经过充分研究的设计决策,它考虑了语言的命令性质,但在实际情况下,必须将取消对象传递给所有异步方法,至少有点痛苦。 c#社区还有另一种设计思路,还是提议的取消机制就好了?我想我错过了什么。
【问题讨论】:
-
使用取消令牌的取消机制似乎是事情的发展方向,包括在 C# 5 CTP on Async 中。 msdn.microsoft.com/en-us/vstudio/gg316360 。它不叫 C# 5,但我在这里用它来表示 C# 的“下一个”版本。
-
刚刚注意到您在问题中使用了“等待”,因此您熟悉 CTP。我认为 Task Parallel Library (.NET 4) 有点确认它提供的设施是可行的方法,因此 Async CTP 使用相同的范例。
-
@Henk Holterman:您提到的相关问题已关闭。出于这个原因,我以一种对 StackOverflow 更友好的方式编写了这个问题。并且只关注我认为更重要的点。
-
只是为了清楚。这个问题与 C# 5 vNext 有关。
标签: c# async-await