我在不同的线程上创建了新的Window,因为它具有繁重的UI操作,这样做是为了使我的主窗口平稳运行。一切正常。
但这是问题:
如何访问新创建的窗口?
调用visualisationWindow
之后,我将无法再操作 private void CreateVisualisationWindow()
{
Thread VisualisationWIndowThread = new Thread(new ThreadStart(ThreadStartingPoint));
VisualisationWIndowThread.SetApartmentState(ApartmentState.STA);
VisualisationWIndowThread.IsBackground = true;
VisualisationWIndowThread.Start();
}
private void ThreadStartingPoint()
{
Visualisation visualisationWindow = new Visualisation();
visualisationWindow.Show();
System.Windows.Threading.Dispatcher.Run();
}
。我想继续访问该新创建的窗口对象。
这是我的窗口的创建方式:
System.Windows.Threading.Dispatcher.FromThread(VisualisationWIndowThread)
我也尝试通过INSERT INTO MyDatabase.dbo.Users (
FirstName,
LastName,
UserID,
PasswordSalt,
Password,
PasswordChanged,
UserName)
SELECT
FirstName,
LastName,
UserID,
PasswordSalt,
Password,
PasswordChanged,
UserName
FROM MyDatabase2.dbo.Users
访问它,但似乎我误解了一些核心内容。
答案 0 :(得分:0)
我使用两个WPF窗口对象和一个计时器模拟了您的问题,以确保在调用第二个窗口之前创建了第二个窗口。下面是我的代码示例,它每五秒钟更新一次第二个Windows TextBox:
mtvMarque.setEllipsize(TextUtils.TruncateAt.MARQUEE);
mtvMarque.setSelected(true);
mtvMarque.setSingleLine(true);
窍门是,您需要在第二个窗口上调用Dispatcher才能访问它。