Я понимаю, что Thread.Abort() является злом из множества статей, которые я прочитал по этой теме, поэтому в настоящее время я нахожусь в процессе копирования моего прерывания, чтобы заменить его более чистым способом; и после сравнения пользовательских стратегий с людьми здесь, в stackoverflow, а затем после чтения " Как создавать и завершать потоки (руководство по программированию на С#)" из MSDN, оба из которых утверждают, что подход очень одинаков - это использовать стратегию проверки подхода volatile bool
, что приятно, но у меня все еще есть несколько вопросов....
Сразу же то, что выделяется мне здесь, - это то, что если у вас нет простого рабочего процесса, который просто запускает цикл хрустящего кода? Например, для меня мой процесс - это процесс загрузки фонового файла, я на самом деле прохожу через каждый файл, поэтому что-то, и я уверен, что могу добавить мой while (!_shouldStop)
вверху, который покрывает меня каждую итерацию цикла, но у меня много больше бизнес-процессов, которые происходят до того, как он ударит по следующей итерации цикла, я хочу, чтобы эта процедура отмены была быстрой; не говорите мне, что мне нужно посыпать их, а петли каждые 4-5 строк вниз по всей моей рабочей функции?!
Я действительно надеюсь, что есть лучший способ, может кто-нибудь, пожалуйста, посоветуйте мне, если это на самом деле, правильный [и только?] подход для этого или стратегии, которые они использовали в прошлом, чтобы достичь того, что я получаю после.
Спасибо банде.
Дальнейшее чтение: Все эти ответы SO предполагают, что рабочий поток будет циклическим. Это не устраивает меня со мной. Что делать, если это линейная, но своевременная фоновая операция?