My BackgroundWorker
s RunWorkerCompletedEventHandler
вызывает функцию в моем основном потоке, которая показывает диалог MessageBox
. Я проверил, что происходит, если я периодически вызываю BW (с Timer
), и я не понимаю, почему это заставляет меня получать несколько окон сообщений с течением времени. Я имею в виду, не должен ли поток GUI быть заблокирован во время вызова моей функции RunWorkerCompletedEventHandler
? Всякий раз, когда я закрываю диалоговое окно, остальная часть функции выполняется как обычно для каждого диалогового окна.
Если я заменю MessageBox.Show
на Thread.Sleep
, то у меня нет этой проблемы. Все вызовы функции выполняются один за другим. Во время сна второго вызова не происходит, как это происходит с MessageBox
-es.
Почему это неожиданное поведение происходит для MessageBox
, и я могу изменить его, чтобы правильно заблокировать поток?