Что я пытаюсь достичь?ThrowIfCancellationRequested() vs Abort()
Я пытаюсь отменить длительную задачу из другой задачи с помощью CancellationToken. Для меня невозможно обработать отмену и выполнить долговременную задачу, потому что она никогда не коснется кода, который обрабатывает отмену (задача обрабатывает плохой шаблон регулярного выражения, который занимает вечность, в любом случае это не важно). Я попытался обработать из другой Задачи и опроса для запроса аннулирования, и когда я вызываю ThrowIfCancellationRequested(), он на самом деле бросает этот поток. Таким образом, долго работающая задача все еще жива и висит.
Как я решил эту
Ну вместо того, чтобы использовать ThrowIfCancellationRequested лексемы() я acually называется Abort() на тему давно работает задача, и он работает как шарм.
И мой вопрос: Я уверен, что это не очень элегантно, и я хотел бы знать, если это нормально, что я там делал и как еще я могу подойти к этой ситуации?
http://stackoverflow.com/questions/4359910/is-it-possible-to-abort-a-task-like-aborting-a-thread-thread-abort-method –
Спасибо, сэр. Итак, первые строки ... Это не в порядке! Это ужасно. –
Thread.Abort не делает то, что вы думаете. [См. Мой ответ здесь] (http://stackoverflow.com/questions/27561976/check-if-thread-finished-its-method-before-killing-it-c-sharp) –