BackgroundWorker в VS2010 не запускается в другом потоке - PullRequest
0 голосов
/ 01 августа 2011

Я создал WinForm в Visual Studio 2010 (c ++), почти так же, как в этом примере: http://msdn.microsoft.com/en-us/library/waw3xexc.aspx

, но когда я нажимаю на кнопку, которая «запускает» BackgroundWorker, он «застревает» WinForm, поэтому я не могу переместить его или нажать кнопку «Стоп» на время выполнения функции.

Функция работает так, как нужно - возвращает ожидаемый результат, а также индикатор выполнения в порядке.Кажется, что BackgroundWorker работает в том же потоке, что и WinForm.

В чем может быть проблема?

Спасибо!

1 Ответ

0 голосов
/ 01 августа 2011

Я обнаружил проблему.

BackgroundWorker на самом деле работает в другом потоке, но отправляет события прогресс обновления слишком часто, а функция этих событий "ланч" в основной форме - обновляетProgressBar - и эта функция «застревает» в форме.

...