Поток пользовательского интерфейса для каждой надстройки MAF - PullRequest
0 голосов
/ 28 июня 2011

Я работаю с MAF в WPF и у меня проблемы с потоками пользовательского интерфейса. Мне бы хотелось, чтобы каждый аддин, который я активировал, стал уникальным потоком пользовательского интерфейса.

Почему я хочу, чтобы вы, наверное, задались вопросом? Я пытаюсь объяснить: -)

У меня есть хост-приложение, которое является контейнером для надстроек. Разные люди разрабатывают надстройки для хоста. Если разработчик запускает длинную процедуру в своем надстройке и забывает вызвать или запустить процедуру в потоке, хост зависнет, потому что хост и надстройки совместно используют один поток пользовательского интерфейса.

Каждое дополнение запускается в отдельном домене приложения. О каждом намеке я буду счастлив.

1 Ответ

1 голос
/ 14 февраля 2012

вы можете попробовать следующий подход:

Thread thread = new Thread(() =>
{
 Window1 w = new Window1();
 w.Show();

 //make sure to stop the Dispatcher when window is closed
 w.Closed += (s, e) => w.Dispatcher.InvokeShutdown();
 //start the message pump
 System.Windows.Threading.Dispatcher.Run();
});

thread.SetApartmentState(ApartmentState.STA);
thread.Start();
...