Вопросы по теме 'cancellationtokensource'

Как узнать, что объект утилизирован?
У меня многопоточное приложение, и CancellationToken используется как общий объект. Каждый поток может запустить его, чтобы сообщить другим потокам, что задание отменено. Затем один поток выполняет очистку и удаляет каждый объект, подобный этому...
25087 просмотров
schedule 11.09.2022

Моделирование токенов отмены в Python Threading
Я только что написал очередь задач на Python, задачей которой является ограничение количества задач, выполняемых одновременно. Это немного отличается от Queue.Queue , потому что вместо того, чтобы ограничивать количество элементов в очереди, оно...
2078 просмотров

Почему отмена блокируется так долго при отмене большого количества HTTP-запросов?
Фон У меня есть код, который выполняет пакетную обработку HTML-страницы с использованием контента с одного конкретного хоста. Он пытается сделать большое количество (~ 400) одновременных HTTP-запросов, используя HttpClient . Я считаю, что...
1571 просмотров

Ошибка: операция отменена
Я использую этот фрагмент кода для выполнения асинхронного запроса с токеном отмены: var _client = new HttpClient( /* some setthngs */ ); _client.GetAsync(someUrl, cancellationToken).ContinueWith(gettingTask => {...
13661 просмотров

CancellationToken — обработчик регистрации после запроса на отмену
При отсутствии строительства быстрого испытательного стенда; Я подумал, что быстро попрошу SO посмотреть, знает ли кто-нибудь этот ответ навскидку. Кроме того, это может иметь дополнительное преимущество, заключающееся в информировании других...
2703 просмотров

Отменить задачу по времени
У меня есть многопоточное приложение, где мне нужно отменить каждую задачу через определенное время, даже если в момент отмены они используют неуправляемые ресурсы. Сейчас я использую следующий код (например, консольное приложение). В реальном...
4912 просмотров

Отменить асинхронную задачу с помощью кнопки
Что мне нужно сделать, так это иметь возможность отменить задачу, которая выполняется асинхронно. Я искал и, кажется, не могу обернуть вокруг себя. Я просто не могу понять, как это будет реализовано в моей текущей настройке. Вот мой код,...
5020 просмотров
schedule 01.03.2023

Когда f# async проверяет свой CancellationToken?
Я читаю F# для удовольствия и пользы — Асинхронное программирование . В разделе Отмена рабочих процессов есть следующий пример: let testLoop = async { for i in [1..100] do // do something printf "%i before.." i //...
1691 просмотров

Почему отмена задачи происходит в вызывающем потоке?
Я обнаружил проблему в шаблоне отмены задачи, и я хотел бы понять, почему это должно работать таким образом. Рассмотрим эту небольшую программу, в которой вторичный поток выполняет асинхронную «длинную» задачу. Тем временем основной поток...
880 просмотров

могу ли я отменить все сообщения, а затем добавить один, используя TPL Dataflow?
С библиотекой TPL Dataflow я хотел бы сделать что-то вроде этого: myActionBlock.Post(newValue, cancelAllPreviousPosts: true); Похоже, что токен отмены в ActionBlock отменяет все; Если бы я установил его, мне пришлось бы создать новый...
1466 просмотров

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

как исправить эту проблему Task/CancellationToken?
Я запускаю этот код; using System; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var task = DoSomething();...
216 просмотров
schedule 21.04.2023

Вызов CancellationTokenSource.Cancel() внутри задачи не устанавливает для Task.IsCanceled значение true
Если я вызываю cancellationTokenSource.Cancel в задаче, связанной с токеном отмены, OperationCancelledException выдается правильно, однако task.IsCanceled НЕ всегда обновляется и устанавливается на true , как можно было бы ожидать. Проблему...
798 просмотров

CancellationTokenSource против volatile boolean
Есть ли какие-либо преимущества для использования CancellationTokenSource в логическом поле volatile для сигнализации Task финиш?
2631 просмотров
schedule 20.06.2023

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

Синхронизация потоков (блокировка), которая освобождает только последний поток
Каков правильный способ гарантировать, что только «последний» поток получит доступ к мьютексу/заблокированной области, в то время как промежуточные потоки не получат блокировку? Пример последовательности: A acquires lock B waits C waits B fails...
269 просмотров
schedule 22.12.2022

Объединение задач в цепочку с продолжением и последующим запуском параллельной задачи
Рабочий процесс параллельных задач Я надеюсь получить помощь по проблеме, с которой я столкнулся. Итак, проблема в том, что я запускаю параллельные задачи для поиска файлов в папках. Каждая задача включает в себя идентификацию файлов и...
773 просмотров

Запуск не может быть вызван для задачи, которая завершилась исключение для задачи, которая не запускалась
Я работаю над мобильным приложением, разработанным с помощью Xamarin, и время от времени получаю отчеты о сбое приложения из-за следующего исключения: System.InvalidOperationException Start нельзя вызывать для завершенной задачи. Чтобы...
4332 просмотров

Отменить задачу внутри маршрута
Я создаю приложение С#, используя Nancy API. У меня есть асинхронная операция, которая запускает очень длинный алгоритм оптимизации, который пользователь должен иногда отменять. Псевдокод выглядит следующим образом:...
243 просмотров

C# отмена асинхронной задачи
У меня есть некоторые проблемы с пониманием задач и токенов отмены. Я сделал программу, которая выглядит так: static void Main(string[] args) { CancellationTokenSource token = new CancellationTokenSource(); Stopwatch stop = new...
736 просмотров