Модальное диалоговое окно с самым верхним свойством, установленным в true, не отображается как самое верхнее при отображении в новом потоке. Пример кода:
Thread thread = new Thread(KickOffForm);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
private void KickOffForm(object state)
{
Thread.Sleep(5000); // Mimics logic that takes place before form is shown
var form = new Form2();
form.ShowDialog();
}
Модальное диалоговое окно появляется как самое верхнее, если форма создается в начале потока. Пример кода:
Thread thread = new Thread(KickOffForm);
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
private void KickOffForm(object state)
{
var form = new Form2();
Thread.Sleep(5000); // Mimics logic that takes place before form is shown
form.ShowDialog();
}
Приведенный выше код выполняется в классе, который создается при запуске exe.
Почему форма появляется как самая верхняя, когда создается в начале потока, а не если создается позже?