У меня есть довольно общее понимание потока GUI и цикла сообщений, но мне любопытно, как это относится к одному окну, начиная модальное окно. Если бы я должен был догадаться, я бы сказал, что оба окна запускаются под одним и тем же потоком GUI и что какой-то параметр указывает, что будут выполняться только события с дочерним окном (модальным), в противном случае указать модальное окно пользователю ,Какой поток обрабатывает модальные диалоговые окна в .Net?
Это просто полуобразованное предположение, и я согласен с тем, что я ошибаюсь из квадратного. Я даже не уверен, что «поток GUI» - это правильное название для этого потока, но люди обычно могут догадываться, о чем я говорю.
Итак, как работают потоки и модальные окна вместе?
Открытие модального диалога является блокирующим вызовом. Вызывающее окно ждет завершения модального диалога перед тем, как обработать больше событий. –
@Robert Harvey, так же как модальное окно работает в новом потоке, пока родительское окно заблокировано? Что именно это подразумевает для событий родительского окна, таких как перекраска? –
Мое понимание заключается в том, что модальный диалог по-прежнему работает в главном потоке графического интерфейса. Если вы хотите, чтобы обработка выполнялась в фоновом режиме (включая перерисовку основной формы), пока отображается модальный диалог, вам нужно открутить новый поток для запуска фонового процесса. –