звоню
obackgroundworker.CancelAsync ();
на фоне работника в настоящее время делает некоторую работу в другом потоке, а затем с помощью
while (obackgroundworker.IsBusy == true)
дождаться его завершения, прежде чем выйти из приложения (в случае, если пользователь передумает, пока поток не обрабатывает, и я хочу полностью закрыть)
Квартира для отмены отмены установлена на true, но поток не завершается, в рабочем потоке у меня есть:
backgroundworker obackgroundworker = (backgroundworker)sender;
if (obackgroundworker.cancellationpending == true)
e.cancel = true;
, который должен проверить, ожидает ли отмена отмены, а затем установить флаг отмены в значение true, и я думаю, что это также приводит к фактическому завершению потока ...? или есть какая-то другая функция, которую мне нужно вызвать из потока, когда он обнаруживает отмену для фактического завершения?
Я прочитал много примеров, в которых используются фоновые рабочие, как и выше, и не сообщают о каких-либо проблемах.
Источники:
http://www.albahari.com/threading/part3.aspx
http://www.dotneat.net/2009/02/10/BackgroundworkerExample.aspx
http://www.codeproject.com/KB/cpp/BackgroundWorker_Threads.aspx
Спасибо