Код: Выделить всё
Thread newWindowThread = new Thread(new ThreadStart(() =>
{
WpfSplashScreen splash = new WpfSplashScreen();//Get stuck here!
splash.Show();
Thread.Sleep(3000);
splash.Close();
}));
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();
//Loading some things...
Thread.Sleep(4000);
Пока при отладке, если я войду в «WpfSplashScreen()», я увижу, что поток останавливается на методе «InitializeComponent()».
Я не хочу менять свой SlpashScreen на другой компонент , идея здесь не в этом, я использовал один и тот же подход для открытия других диалоговых окон в их собственных потоках во многих частях моей программы по разным причинам (например, окно индикатора выполнения), и во всех случаях после миграции возникает одна и та же проблема. SplashScreen — это самый простой пример этой проблемы, который у меня есть. Поэтому мне действительно нужно знать, как сделать так, чтобы инициализация диалога Wpf не вывешивала отдельный поток в .Net 8.
Есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/782 ... d-in-net-8
Мобильная версия