首页 > TAG信息列表 > cancellation-token

c# – 请求CancellationToken时,CancellationTokenSource是必需的吗?

这个MSDN example可以在不使用CancellationTokenSource的情况下编写,可以直接使用CancellationToken. 可以直接使用CancellationToken还是永远不应该做的事情?我没有看到任何在MSDN上直接使用的例子,如果可以的话,这会让我变得更聪明. 更新 下面的Cod扩展了已接受的答案,其中包含一

c# – 停止线程,ManualResetEvent,volatile boolean或cancellationToken

我在Windows服务中有一个Thread(STAThread),它执行大量工作.重新启动Windows服务时,我想优雅地停止此线程. 我知道几种方法 >一个不稳定的布尔值 > ManualResetEvent> CancellationToken 据我所知,Thread.Abort是不行的…… 什么是最佳做法?该工作在另一个类中执行,而不是启动线程的

c# – 当我用linq键入时运行任务(如果仍在运行则取消上一个任务)

我想创建一个在我键入时使用linq搜索的任务,如果用户键入另一个字符,它应该取消任务并重新创建搜索,我有以下代码: private Task SearchChannels; private CancellationTokenSource cancelSearch; public void PopulateChannels(string newValue) { IsSearchingChannels = tru

c# – 请求取消时我是否应该抛出或退回?

考虑以下两种通过CancellationToken处理取消的方法: public async Task DoAllAvailableWork(CancellationToken cancelToken) { foreach (var job in GetAllAvailableWork()) { await job.Process(); if (cancelToken.IsCancellationRequested())

c# – await方法中的取消令牌

将令牌放在任务的构造函数中有很多原因,如下所述: Cancellation token in Task constructor: why? 使用关键字async / await,这是如何工作的?例如我的代码如下: public async Task MethodAsync(CancellationToken token) { await Method01Async(); await Method02Async(); } 虽

c# – 取消所有异步任务

是否可以在不知道当前正在运行的内容的情况下取消所有异步方法? 例如,我有几个可以运行异步任务的类: class Class1 { public async void SomeTask() { for (int i = 0; i < 5; i++) { // Doing some job await Task.Delay(2000);