【发布时间】:2012-03-05 12:16:36
【问题描述】:
我在 wpf 中做一个项目。 我从一个窗口导航到一个表单,当我导航到另一个窗口时,它会生成以下错误。 提前致谢。
The calling thread must be STA, because many UI components require this
verificationform.cs
if (result.Verified)
{
MakeReport("The fingerprint was VERIFIED.");
Home h = new Home();
this.Hide();
h.Show();
}
================================================ ===========
public partial class Home : Window
{
public Home() ////######error occurs here!!!
{
InitializeComponent();
labelNAME.Content = (string)Application.Current.Properties["name"];
}
}
【问题讨论】:
-
您对此错误有什么具体问题吗?注意:如果查看相关面板,您会发现几个非常相似的帖子。
-
我想从验证表单导航到主窗口。但是发生了这个错误。我第一次遇到这种类型的错误,我尝试了使用另一个帖子中的线程的代码,但它没有帮助。 ...你能帮帮我吗?
-
你能描述一下你对线程的使用以及哪些线程被设置为[STAThread]?
-
不要在工作线程上创建窗口。请改用 Dispatcher.BeginInvoke。
-
我试过 dispatcher.invoke。我应该有窗口的对象来调用调度程序对象,当我创建对象时 //mainwindow mwobj=new mainwindow();// 我得到错误“调用线程必须是 STA,因为许多 UI 组件都需要这个" 在 mainwindow.xaml.cs 中的公共 mainwindow(){....} 中。我该如何解决这个问题?
标签: wpf multithreading