我有一个线程,它有一个打印任务,它创建一个视图,它是ViewModel,并初始化它们。
不使用线程:
ViewModel具有一些绑定,并在将其提供给视图后被正确初始化。
//MyView : UserControl
//Constructor
DataContext = vm;
InitializeComponent();使用线程:
在InitializeComponent()期间,会抛出一个异常。
我已经在这里检查了答案,并在谷歌上搜索了一下,只发现了“常见”错误--没有在STA中运行线程。这似乎不适用于我的代码。
//Join thread if valid
//set to null
PrintThread = new Thread(new ParameterizedThreadStart(ExecutePrintJob));
PrintThread.SetApartmentState(ApartmentState.STA);
PrintThread.Start(); //Takes parameter but unused at the moment//Translated it
Exception thrown: 'System.Windows.Markup.XamlParseException' in PresentationFramework.dll
Additional information: Line number "25" und Line position "43" from "An exception occured during the initialization of "System.Windows.Controls.Label.".<Label Content="TextBox --->"
Grid.Column="0" Grid.Row="0"
VerticalAlignment="Center" HorizontalAlignment="Center" />当在另一个线程(而不是任务)中使用它时,什么可能抛出System.Windows.Markup.XamlParseException?我不确定我如何解决这个问题,我已经问了一些人。
发布于 2016-08-30 22:41:15
看一下这个异常,你用来打印的组件将使用一个"System.Windows.Controls.Label“,这是一个UI组件,因此它应该在主UI线程上被实例化。我会尝试在该线程上编组调用。我遇到了一个可能类似的问题(即使在不同的上下文中),我在这里发布了我的解决方案,我希望它能有所帮助:
https://stackoverflow.com/questions/39229765
复制相似问题