Я асинхронно работает Task
, что пожары событие, когда он завершил так:Создание управления WPF из отдельной нити
task.ContinueWith(() => {
if (MyEvent != null)
MyEvent(this, EventArgs.Empty);
}
обработчик событий, то необходимо создать экземпляр управления WPF. Но когда я пытаюсь сделать это, это вызывает исключение: The calling thread must be STA, because many UI components require this
. Исключение происходит в конструкторе класса при вызове метода.
Насколько я знаю, обычно acessing МОФ управления из отдельных threades обрабатывается с помощью Dispatcher.Invoke
и он всегда работал для меня, так что я пробовал:
Dispatcher.Invoke(new Action(() =>
{
InitializeComponent();
}));
Но в этом случае исключение держит происходит. Может ли кто-нибудь сказать, как создать экземпляр элемента управления WPF из отдельного потока? Или, может быть, это будет лучший подход для маршаллинга события завершения в основной поток пользовательского интерфейса, если да, как я могу это сделать?
Любая помощь приветствуется. Благодарю.
Это похоже работать, спасибо! – Slippy