Я создал новое окно в отдельном диспетчерегрузоотправитель нити бесконечного цикл
Dispatcher dispatcher = null;
var newWindowThread = new Thread(() =>
{
MainWindow window = new MainWindow();
window.ShowDialog();
});
newWindowThread.SetApartmentState(ApartmentState.STA);
newWindowThread.IsBackground = true;
newWindowThread.Start();
while (dispatcher == null)
{
Thread.Sleep(10);
dispatcher = Dispatcher.FromThread(newWindowThread);
}
, а затем с помощью этого диспетчера я могу вызывать некоторые действия, но в данном случае это окно является модальным, мне не нравится это и Мне нужно отдельное окно, которое не является модальным.
Когда я использую Show() вместо ShowDialog(), выполнение заканчивается, и мой диспетчер не работает.
Как я могу положить его в бесконечный цикл?
Но протекторы должны быть активными и отвечать на Invoke().
Хотя я не могу быть уверен в этом на 100%, я думаю, вам понадобится 'Application.Run (new MainWindow());' в 'Thread' вместо того, что у вас есть. –
Ваш MainWindow по-прежнему работает на основном потоке/диспетчере ... –
Что бы вы ни делали (попробуйте объяснить это), это неправильный путь. –