sta -线程异常

本文关键字:异常 线程 sta | 更新日期: 2023-09-27 18:04:39

我有一个线程有一个打印作业,创建一个视图和它的ViewModel,并初始化它们。


ViewModel有一些绑定,并且在给View后被正确初始化。

//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 ?我不确定如何解决这个问题,已经问了几个人。

sta -线程异常

看看这个例外,你用来打印的组件将使用"System.Windows.Controls"。这是一个UI组件,因此它应该在主UI线程上实例化。我会尝试在该线程上编组调用。我在一个可能类似的问题(即使在不同的上下文中),我张贴了我的解决方案在这里,我希望它有帮助:

为什么WPF按钮's命令's CanExecute方法不被调用,即使我调用CommandManager.InvalidateRequerySuggested()?