2015-09-15 2 views
0

Предполагая, что у меня очень длинная работа, которая не содержит никакого цикла, я имею в виду, что характер операции длительный, без какой-либо рекурсии и повторения. В этом случае, если я использую тип CancellationToken, чтобы выбросить исключение отмены или флаг Boolean для «Безопасного» отмены задачи, токен или флаг никогда не будут достигнуты.Умышленно прерывание задачи

Теперь единственной целью было бы разорвать выполняемую задачу независимо от того, является ли прерывание хорошим или плохим подходом. При использовании потоков применяется метод прерывания (мне не интересно обсуждать его недостатки, поскольку я уже знаю об этом), но когда дело доходит до типа Задачи, я не вижу его там. И если моя задача должна вернуть значение, то потоки не будут заданы.

Что является самым безопасным и эффективным способом реализации этого.

+3

Там нет метода прерывания, потому что задачи не обязательно связаны с потоками. – dcastro

+0

@ dcastro: Я уже знаю это, я ищу решение. Я хочу разбить его независимо от того, что очень похоже на Environment.Exit (0), который разбивает все текущие операции и закрывает приложение. – Arrrr

+1

Каков контекст здесь? – Mathematics

ответ

-1

Вы можете убить процесс,

process.Kill(); 

Отмена задачи или прерывании задача никогда не обещали, независимо от того, что документация говорит.

ИЛИ

Вы можете начать свои задачи в потоке, а затем использовать thread.abort();.

Я боюсь, что у вас нет выбора здесь. Чтобы быть уверенным, вам нужно предоставить контекст.

enter image description here

+0

Я уже упоминал, что это бесполезно – Arrrr

+0

Вы не читали текст вопроса тщательно –

+2

обновили его сейчас .. Пользователь отредактировал свой вопрос после того, как я ответил как через секунду – Mathematics