Диалоги бывают двух видов: модальные и немодальные.Модальное диалоговое окно должно быть закрыто перед продолжением обработки.Это делает код намного проще.С немодальным диалогом вещи могут происходить как в диалоге, так и в других местах.А с двумя немодальными диалоговыми окнами есть еще больше возможностей.
Ваш код явно использует модальные диалоговые окна, даже если вы не показываете нам, как вы создаете эти диалоги.Это очевидно из поведения, которое вы описываете.a.ShowDialog()
ожидает закрытия модального диалога.
Обратите внимание, что все диалоги являются окнами, но не все окна являются диалогами.Вы можете создать свое собственное окно полностью с нуля и реализовать любое поведение, какое захотите.Диалоги - это, в основном, окна, где сама ОС обеспечивает большую часть поведения.Диалог MessageBox
- это крайний случай, когда вы просто предоставляете контент, а не код вообще.