gpt4 book ai didi

c# - Window_Loaded 事件线程错误中的后台线程

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:06 24 4
gpt4 key购买 nike

我必须加载一个窗口,在 Window_Loaded 中,我必须加载一些变量并将其显示在 Window 上。

private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
BackgroundWorker worker = new BackgroundWorker();

worker.DoWork += (o, ea) =>
{
try
{
//code to download some variables which will show on UI of Window Loading
}
catch (Exception ex)
{
//The calling thread cannot access this object because a different thread owns it.
}
};

worker.RunWorkerCompleted += (o, ea) =>
{

};

worker.RunWorkerAsync();
}

但是我遇到了线程异常。有什么方法可以在 BackgroundworkerDoWork 窗口中显示变量值?

最佳答案

您应该在 DoWork 中检索您需要的数据部分,然后将其分配给 ea.Result , 这将使它在 RunWorkerCompleted 中可用部分。

RunWorkerCompleted部分,您可以访问 ea.Result再次,将对象转换回您在 DoWork 中分配的任何类型,并根据需要将数据应用到您的 UI 控件。

worker.DoWork += (o, ea) =>
{
ea.Result = GetMyData();
};

worker.RunWorkerCompleted += (o, ea) =>
{
var myData = (myDataType)ea.Result;

// Assign myData as needed to UI components...
};

关于c# - Window_Loaded 事件线程错误中的后台线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15340320/

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