Описание тега cancellationtokensource

Предоставляет токен отмены в.NET для совместной отмены асинхронных или длительных синхронных операций.
2 ответа

Как отменить ожидание Задача, которая выполняет несколько задач в C#

У меня есть функция во время простоя, когда с определенным интервалом, например, каждые 30 секунд, он выполняет опрос аппаратного обеспечения на предмет статуса. Имя метода public static async Task PollCurrentHardwareStatus() что внутри этого метода…
1 ответ

Шаблон повторного входа 5: отмена предыдущего вызова

Мне нужна задача повторного ввода и реализации кода, аналогичного https://blogs.msdn.microsoft.com/lucian/2014/03/03/async-re-entrancy-and-the-patterns-to-deal-with-it/ (шаблон 5) но мне интересно, если распоряжение CancellationTokenSource не отсутс…
05 сен '17 в 06:56
2 ответа

Как правильно отменить задачу с помощью обработчика событий

Извините за плохой английский. В моем проекте у меня есть две задачи. Один для декодирования данных с IP-камеры и события готовности к пожарной сигнализации в пользовательский интерфейс. И другие смотреть камеру не в автономном режиме. Если камера н…
2 ответа

Создание наблюдателя асинхронных ресурсов в C# (ресурс очереди компонента Service Broker)

Частично как упражнение в изучении асинхронности, я пытался создать ServiceBrokerWatcher учебный класс. Идея очень похожа на FileSystemWatcher - смотреть ресурс и поднять событие, когда что-то происходит. Я надеялся сделать это с помощью асинхронног…
1 ответ

Остановить / избавиться / отменить задачу C#

Я пытаюсь развернуть библиотеки DLL внутри службы Windows, импортируя библиотеки DLL из различных репозиториев, таких как Google Drive/ Dropbox/ FTP и т.д.... Но прежде чем создавать новую DLL, я бы хотел закрыть предыдущий работающий экземпляр. Я и…
1 ответ

CancellationTokenSource.Cancel() зависает

Я наблюдаю повесить в CancellationTokenSource.Cancel когда один из асинхронных находится в активном цикле. Полный код: static async Task doStuff(CancellationToken token) { try { // await Task.Yield(); await Task.Delay(-1, token); } catch (TaskCancel…
21 сен '18 в 20:11
0 ответов

Почему состояние этой задачи "RanToCompletion", хотя я ее отменил?

В следующем фрагменте кода у меня есть задача, которая отменяется, когда пользователь нажимает любую клавишу. При этом вызывается ContinuationTask о том, что задача была отменена. ContinuationTask настроен таким образом, что он запускается только по…
0 ответов

C#: как закрыть sslStream из другого потока

Я пытаюсь дать sslStream читать асинхронно в течение 5 секунд. Если поток не получил ничего через 5 секунд, поток будет закрыт. Проблема текущей реализации заключается в том, что закрытие потока с помощью этого трюка выдаст на консоли ошибку: "Невоз…
08 апр '18 в 19:33
1 ответ

CancellationTokenSource.Cancel генерирует исключение ObjectDisposedException

У меня есть класс, который владеет CancellationTokenSource, public class GrabboxCell : UICollectionViewCell { CancellationTokenSource _tokenSource = new CancellationTokenSource (); // ... } Я использую текущий токен для запуска некоторых длительных …
1 ответ

TaskCanceledException не работает в HttpClient

Я пытаюсь получить ошибку, когда мой запрос истек. я посылаю реквизит из клиентского проекта в серверный проект. это мой код System.Threading.CancellationTokenSource cts = new System.Threading.CancellationTokenSource(); try { response = await client…
1 ответ

Является ли код, который удаляет CancellationTokenSource при отмене задач, правильным?

Я вижу этот код передо мной, и я с подозрением CancellationTokenSource _cts; public void Dispose(); { _cts.Cancel(); _cts.Dispose(); _task.Wait(); //wait for the task to be canceled!? } Безопасно ли вызывать _cts.Dispose() сразу после отмены? Разве …
21 апр '15 в 18:02
3 ответа

Task.Factory.FromAsync с CancellationTokenSource

У меня есть следующая строка кода, используемая для асинхронного чтения из NetworkStream: int bytesRead = await Task<int>.Factory.FromAsync(this.stream.BeginRead, this.stream.EndRead, buffer, 0, buffer.Length, null); Я хотел бы, чтобы это подд…
1 ответ

Как отменить Async Загрузка одного файла с несколькими загрузками файлов?

Я использую некоторый код для загрузки нескольких файлов, который работает хорошо. загружая много файлов, я хотел бы иметь возможность отменить их. Помимо пользовательского интерфейса с кнопкой отмены я использую в качестве глобальных переменных: pr…
3 ответа

CancellationTokenSource.Cancel создает исключение

Поскольку я читаю документацию, CancellationTokenSource.Cancel не должен выдавать исключение. CancellationTokenSource.Cancel Под вызовом cts.Cancel(); вызывает (не выбрасывает) исключение OperationCanceledException.Я очень уверен в этом, как будто я…
17 мар '14 в 16:21
3 ответа

Правильно отмените асинхронную операцию и запустите ее снова

Как обрабатывать случай, когда пользователь может нажать кнопку, которая запускает длительную асинхронную операцию, несколько раз. Моя идея состояла в том, чтобы сначала проверить, выполняется ли асинхронная операция, отменить ее и запустить снова. …
1 ответ

Почему задача не отменяется при вызове метода CancellationTokenSource в асинхронном методе?

Я создал небольшую обертку вокруг CancellationToken а также CancellationTokenSource, У меня проблема в том, что CancelAsync метод CancellationHelper не работает, как ожидалось. Я испытываю проблему с ItShouldThrowAExceptionButStallsInstead метод. Чт…
3 ответа

Как правильно сбросить CancellationToken?

Я играл с async ctp сегодня утром и есть простая программа с button и label, Нажмите на button и он начинает обновлять labelОстанови button перестает писать в label, Тем не менее, я не уверен, как сбросить CancellationTokenSource так что я могу пере…
2 ответа

Когда Task.IsCancelled установлен как true?

Когда придет Task.IsCanceled = true; Код: var cts = new CancellationTokenSource(); string result = ""; cts.CancelAfter(10000); try { Task t = Task.Run(() => { using (var stream = new WebClient().OpenRead("http://www.rediffmail.com")) { result = "…
3 ответа

Как отменить запрос FileStream.ReadAsync( ...)?

Учитывая следующее: using System; using System.IO; using System.Threading; using System.Threading.Tasks; namespace CancelAsyncFileReadFailure { class Program { static void Main( string[ ] args ) { Console.WriteLine( Foo( ).Result ); Console.ReadLine…
2 ответа

Parallel.ForEach CancellationTokenSource не останавливается

В настоящее время я пишу библиотеку ProxyChecker. Я использую поток, который смешивает цикл Parallel.ForEach для проверки всех прокси. Я использую CancellationTokenSource (cts) сделать мягкий прерывание (с cts.Cancel()). Как вы можете видеть в следу…