cancellation-token相关内容

如何获得Task.WhenAny for Task和CancellationToken的效果?

我有一个交互式任务,在“最差”情况下根本不执行,因此由 TaskCompletionSource 表示。 我想等待此任务完成,或者我收到的令牌被取消-以先发生的为准。完美的工具是 Task.WhenAny ,唯一的问题是它只需要任务,而我只有一个 Task 和一个 CancellationToken 。 如何等待(异步地,例如 Task.WhenAny )触发的第一个事件-已完成任务, ..
发布时间:2020-06-07 19:10:24 C#/.NET

F#Async.Run与超时和cancelToken同步

在使用超时和CancellationToken调用Async.RunSynchronously时,似乎忽略了超时值。我可以通过在CancellationToken上调用CancelAfter来解决此问题,但理想情况下,我希望能够区分工作流中发生的异常TimeOutExceptions和OperationCanceledExceptions。 我相信下面的示例代码演示了这一点。 开放系统 ..
发布时间:2020-06-07 19:10:22 其他开发

CancellationToken的默认参数

我有一些异步代码,想向其中添加 CancellationToken 。但是,在许多实现中不需要此实现,因此我想使用一个默认参数-也许 CancellationToken.None 。但是, Task DoStuff(....,CancellationToken ct = null) 收益率 类型''的值不能用作默认参数,因为 没有对 类型的标准转换 ..
发布时间:2020-06-07 19:10:18 C#/.NET

将取消令牌存储在服务结构服务中

我正在尝试在服务矩阵有状态服务中实现取消任务功能。 计划正在使用取消令牌将通知传播到链接的线程/任务。 问题是,尽管有这些长时间运行的任务和线程在等待该信号,但我不确定如何才能根据另一个Web API调用找到正确的取消令牌。 我一直在考虑使用可靠的字典,因此即使在尝试使用它之前,我也认为这将陷入僵局,因为cancelingToken无法序列化/反序列化。 请帮助我,什么是解 ..

为什么在异步方法中调用CancellationTokenSource的Cancel方法时,任务没有被取消?

我在 CancellationToken 和 CancellationTokenSource 周围创建了一个小包装。我遇到的问题是 CancellationHelper 的 CancelAsync 方法无法按预期工作。 我遇到了 ItShouldThrowAExceptionButStallsInstead 方法的问题。要取消正在运行的任务,它会调用 await coordinator.Ca ..

如何正确重置CancellationToken?

今天早上,我一直在与异步CTP 一起玩,并且有一个带有按钮的简单程序标签。单击按钮,它开始更新标签,停止按钮它将停止写入标签。但是,我不确定如何重置 CancellationTokenSource 以便重新启动该过程。 我的代码: 公共局部类MainWindow:Window { CancellationTokenSource cts = new CancellationToke ..

取消令牌的使用

我正在尝试学习如何使用取消令牌取消任务。 在这里,我已经为此编写了一个UnitTest,但是我没有得到它的工作方式。 [TestMethod ] 公共异步任务Task_should_not_run_when_token_cancelled_before_its_call() { var cts = new CancellationTokenSource(); var令牌= ct ..
发布时间:2020-05-30 22:33:57 C#/.NET

获取任务CancellationToken

我能否获得在执行任务操作期间传递给Task构造函数的CancellationToken.大多数示例如下: CancellationTokenSource cts = new CancellationTokenSource(); CancellationToken token = cts.Token; Task myTask = Task.Factory.StartNew(() => { ..
发布时间:2020-05-13 22:44:51 C#/.NET

停止线程,ManualResetEvent,易失性布尔值或CancellationToken

我在Windows Service中有一个线程(STAThread),它执行大量工作.重新启动Windows服务后,我要正常停止该线程. 我知道几种方法 易失的布尔值 ManualResetEvent CancellationToken 据我所知Thread.Abort是不行的... 最佳做法是什么? 工作是在不同于启动线程的类中进行的,因此有必要在构造函数中引入Can ..
发布时间:2020-05-13 21:08:17 C#/.NET

取消所有异步任务

是否有可能取消所有异步方法,不知道什么是当前正在运行的 例如我有几个类,可能运行的异步任务:? 类class1 { 公共异步无效SomeTask() { 为(INT I = 0;我小于5;我++) { //做一些工作 等待Task.Delay(2000年); } } } 类等级2 { 公共异步无效ContinuouslyTask() { 为(;;) { ..
发布时间:2016-10-05 00:38:33 C#/.NET

我可以取消StreamReader.ReadLineAsync用的CancellationToken?

当我通过调用取消我的异步方法有以下内容取消()的方法,我的 CancellationTokenSource ,它最终会停止。因为该行然而 Console.WriteLine(等待reader.ReadLineAsync()); 需要相当长来完成,我想我的CancellationToken传递给 ReadLineAsync ()以及(希望它返回一个空字符串),以使该方法更适应我的取消()电话。但是我 ..
发布时间:2016-07-21 10:18:16 C#/.NET