Есть несколько вариантов, все зависит от того, как вы хотите снять шкуру с этой кошки:
Если вы хотите продолжать использовать BackgroundWorker
, то вам нужно уважать модель, которая была установлена, то есть одну из «чувствительности к прогрессу». Материал внутри DoWork
явно необходим для того, чтобы всегда быть в курсе того, должна ли произойти ожидающая отмена (т. Е. В цикле DoWork
должен быть определенный объем опроса).
Если ваш код расчета монолитный и вы не хотите с ним связываться, не используйте BackgroundWorker
, а просто запустите свой собственный поток - таким образом, вы можете принудительно убить его, если потребуется.