gpt4 book ai didi

.net - 在线程中创建 WPF 弹出窗口时出现 "The calling thread must be STA, because many UI components require this"错误

转载 作者:行者123 更新时间:2023-12-03 21:24:41 25 4
gpt4 key购买 nike

我有一个 WPF 应用程序,其中一个线程检查一些值。在某些情况下,我会显示一个弹出窗口 Window以显示消息。当我在线程中创建这个弹出窗口时,弹出窗口的构造函数抛出一个异常:

"The calling thread must be STA, because many UI components require this."



如何解决此错误?

这是我创建弹出窗口的代码:
// using System.Threading;
// using System.Windows.Threading;
Thread Messagethread = new Thread(new ThreadStart(delegate()
{
DispatcherOperation DispacherOP =
frmMassenger.Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
new Action(delegate()
{
frmMassenger.Show();
}));
}));
Messagethread.Start();

最佳答案

对于您尝试在其中启动 GUI 元素的线程,您需要将该线程的单元状态设置为 STA 之前 你开始吧。

例子:

myThread.SetApartmentState(ApartmentState.STA);
myThread.Start();

关于.net - 在线程中创建 WPF 弹出窗口时出现 "The calling thread must be STA, because many UI components require this"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2657212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com