我需要从一大组数据中动态生成FlowDocument。由于该过程需要几分钟,所以我想在后台线程上执行操作,而不是让UI挂起。在BackgroundWorker线程上创建FlowDocument
但是,我无法在非UI线程上生成FlowDocument,否则会尝试插入矩形和图像会导致运行时错误,从而抱怨它不是STA线程。
有一对夫妇在计算器上线的,这似乎涉及我有同样的问题...
Accessing a WPF FlowDocument in a BackGround Process
“WPF“在后台进程访问一个WPF的FlowDocument”:是它不可能在后台线程中加载UI?“ WPF : Is it impossible to UI load in background thread?
在第一个环节有人提出以下建议:
“我会做什么:使用的XamlWriter和序列化的FlowDocument成一个XDocument序列化任务涉及的调度,但一旦它的。完成后,您可以根据需要运行尽可能多的古怪并行数据分析,UI中的任何内容都不会影响它(同样,一旦它是XDocument,您可以使用XPath查询它,这是一个相当不错的锤子,只要您遇到问题)“
有人能详细说明authour的意思吗?
许多TIA
然后使用最终的FlowDocument创建XpsDocument,然后使用XAML中的DocumentViewer控件将其显示为FixedDocumentSequence。 – JamesPD 2012-04-25 10:02:09
您是否在开始在后台线程中生成内容之前,在ui线程上实例化了flowdocument?或类似的东西? – TheZenker 2012-04-25 14:24:45