gpt4 book ai didi

c# - 在后台线程 WPF 中创建 UI?

转载 作者:太空宇宙 更新时间:2023-11-03 22:05:16 26 4
gpt4 key购买 nike

我试过以下:

var task = new Task(() =>
{
for (int i=0; i<10; i++) {
//Create new Grid HERE
// Add Table with some dynamic data here..
// print the above Grid here.
}

});

task.ContinueWith((previousTask) =>
{
label.Content = printerStatus(); // will return "Out of Paper", "printing", "Paper jam", etc.
},
TaskScheduler.FromCurrentSynchronizationContext());

label.Content = "Sending to printer";

它返回以下错误:调用线程必须是 STA,因为许多 UI 组件都需要这个。

错误发生在它试图创建一个新的 UI 对象 Grid 时。

我该如何解决这个问题?让我知道是否有任何其他解决方法!

最佳答案

任务使用 MTA 中的线程池线程。

如果你想要一个后台 STA 线程,你必须自己创建一个并显式设置 ApartmentState

Thread t = new Thread( ... );
t.SetApartmentState( ApartmentState.STA );
t.Start();

关于c# - 在后台线程 WPF 中创建 UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8667529/

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