有一个众所周知的解决方案可以在单独的线程上运行窗口。然而我的问题是 - 如何在与“主”UI 线程分开的同一个窗口上运行两个或多个窗口?
注意 - 窗口是由用户在运行时添加的,所以我不能写这个(甚至不确定这是否有效,只是为了突出这个想法):
var thread = new Thread(() =>
{
Window1 w1 = new Window1();
w1.Show();
Window2 w2 = new Window2();
w2.Show();
System.Windows.Threading.Dispatcher.Run();
});
我需要的是这样的:
Window2 w2 = new Window2();
SetWindowThread(w2, thread);
w2.Show()
我已经完成了这项工作:
w1.Dispatcher.BeginInvoke(() => {
var w2 = new Window1();
w2.Show();
});