首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STA-Thread -异常

STA-Thread -异常
EN

Stack Overflow用户
提问于 2016-08-30 22:07:28
回答 1查看 437关注 0票数 0

我有一个线程,它有一个打印任务,它创建一个视图,它是ViewModel,并初始化它们。

不使用线程:

ViewModel具有一些绑定,并在将其提供给视图后被正确初始化。

代码语言:javascript
复制
//MyView : UserControl
//Constructor
DataContext = vm;
InitializeComponent();

使用线程:

InitializeComponent()期间,会抛出一个异常。

我已经在这里检查了答案,并在谷歌上搜索了一下,只发现了“常见”错误--没有在STA中运行线程。这似乎不适用于我的代码。

代码语言:javascript
复制
//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
代码语言:javascript
复制
//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.".
代码语言:javascript
复制
<Label  Content="TextBox --->"
        Grid.Column="0" Grid.Row="0"
        VerticalAlignment="Center" HorizontalAlignment="Center" />

当在另一个线程(而不是任务)中使用它时,什么可能抛出System.Windows.Markup.XamlParseException?我不确定我如何解决这个问题,我已经问了一些人。

EN

回答 1

Stack Overflow用户

发布于 2016-08-30 22:41:15

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

Why WPF button's command's CanExecute method is not called even if I call CommandManager.InvalidateRequerySuggested()?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39229765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档