gpt4 book ai didi

c# - BackgroundWorker - 调用线程无法访问对象

转载 作者:太空狗 更新时间:2023-10-30 01:19:54 25 4
gpt4 key购买 nike

所以在我的 DoWork 中,我有

List<KeyValuePair<String, BitmapImage>> Files = new List<KeyValuePair<string,BitmapImage>>((List<KeyValuePair<String, BitmapImage>>)e.Argument);

foreach (KeyValuePair<String, BitmapImage> i in Files)
{
string temp = i.ToString(); .......(1)
//.....
}

我按如下方式传递参数:-

backgroundWorkerForReupload.RunWorkerAsync(files);

其中"file"的类型为 List<KeyValuePair<string, BitmapImage>>

在上面的第 (1) 行,它抛出一个 InvalidOperationException消息:“调用线程无法访问此对象,因为另一个线程拥有它。

我很困惑为什么 i由另一个线程拥有。任何帮助将不胜感激。谢谢。

最佳答案

大多数 WPF 对象,包括 BitmapImage,都是线程仿射的,只能由创建它们的线程使用。

您可以通过先调用 Freeze()BitmapImage 修复此问题。

关于c# - BackgroundWorker - 调用线程无法访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21342367/

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