【发布时间】:2012-04-25 09:45:56
【问题描述】:
我需要从大量数据中动态生成FlowDocument。因为这个过程需要几分钟,所以我想在后台线程上执行操作,而不是让 UI 挂起。
但是,我无法在非 UI 线程上生成 FlowDocument,否则尝试插入矩形和图像会导致运行时错误,抱怨它不是 STA 线程。
StackOverflow 上有几个线程似乎涉及我遇到的相同问题:
在第一个链接中,有人提出以下建议:
“我会做什么:使用
XamlWriter并将FlowDocument序列化为XDocument。序列化任务涉及Dispatcher,但一旦完成,您可以运行尽可能多的古怪根据需要对数据进行并行分析,UI 中的任何内容都不会影响它。(同样,一旦它是XDocument,你就可以使用XPath查询它,这是一个很好的锤子,只要你的问题实际上是钉子。) "
有人能详细说明一下作者的意思吗?
【问题讨论】:
-
最终的 FlowDocument 然后用于创建 XpsDocument,然后使用 XAML 中的 DocumentViewer 控件将其显示为 FixedDocumentSequence。
-
在后台线程开始生成内容之前,您是否在 ui 线程上实例化了流文档?或类似的东西?
标签: c# serialization backgroundworker flowdocument xamlwriter