gpt4 book ai didi

WPF : Is it impossible to UI load in background thread?

转载 作者:行者123 更新时间:2023-12-04 14:50:32 26 4
gpt4 key购买 nike

我制作了一些应用程序来构建一个巨大的 FlowDocument。构建 FlowDocument 所用的时间约为 3~4 秒。

所以我喜欢在 BackgroundWorker 中构建 FlowDocument,而不是 UI 线程。但 BackgroundWorker 不能返回 WPF UI 对象。 (发生了 InvalidOperationException 异常。)

我怎么解决这个问题?

最佳答案

如果要在另一个线程中构建 FlowDocument,它必须是第二个 UI 类型的线程,而不是 BackgroundWorker。不管文档怎么说,您可以构建多个 UI 类型的线程。但是,您不能在一个线程中创建 UI 对象,并在另一个线程中使用它们。不过,您可以将 FlowDocument 保存到磁盘,然后在前台 UI 线程中重新加载它。

This article有一个很好的例子,有两个 UI 线程,实际上我已经使用这段代码在后台线程中处理 XPS 文件,与您正在做的非常相似。确保您的第二个 UI 线程设置为 STA 单元状态,正如我所说,不要尝试使用在一个线程中创建的任何 UI 对象,在另一个线程中。它不会工作。

关于WPF : Is it impossible to UI load in background thread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977712/

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