从控制台应用程序c#访问不同线程中的对象

时间:2015-12-22 22:47:07

标签: c# wpf

我有一个控制台应用程序,我想在其中显示wpf窗口:

ths = new ThreadStart(() =>
  {
     window = new wpf_lib.Container();
     System.Windows.Application app = new Application();
     app.Run(window);
  });
 th = new Thread(ths);
 th.TrySetApartmentState(ApartmentState.STA);
 th.Start();

但是,如何从控制台应用程序中的任何方法获取wpf窗口方法和属性的访问权限?

1 个答案:

答案 0 :(得分:0)

您有两种选择,首先是您最简单的选择:

使用System.Windows.Application.MainWindow方法访问Window的属性和方法。

第二步:将属性/方法添加到返回所需Container对象的Window类中。这可能是也可能是不可能的,主要取决于您是否可以访问该类的源代码。

如果遇到有关线程访问的异常,请使用相应WPF对象的Dispatcher。有关详细信息,请参阅this question