【发布时间】:2016-08-25 23:34:13
【问题描述】:
加载和查看我的 xps 文档工作正常,但加载文档需要很长时间,而且您知道这会导致 UI 看起来不活动。
XpsDocument xpsDocument = new XpsDocument(@"Resources\maintManual.xps", FileAccess.Read);
documentViewer1.Document = xpsDocument.GetFixedDocumentSequence();
所以,我正在尝试通过后台工作人员加载文档:
private void maintBtn_TouchDown(object sender, TouchEventArgs e) // load and view maint manual
{
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += worker_DoWork;
worker.ProgressChanged += worker_ProgressChanged;
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
worker.RunWorkerAsync();
}
void worker_DoWork(object sender, DoWorkEventArgs e) // do work
{
XpsDocument xpsDocument = new XpsDocument(@"Resources\maintManual.xps", FileAccess.Read);
documentViewer1.Document = xpsDocument.GetFixedDocumentSequence();
}
一旦执行“Dowork”,用户界面就会“崩溃”(完全锁定)。我似乎找不到原因。有没有更好的方法通过后台工作人员调用文档?就像我说的那样,Dowork 括号中的代码在后台工作人员之外就可以正常工作,所以我知道代码是正确的。一旦使用了后台工作程序,它就会停止工作。如果我没有提供足够的信息,请提前原谅我。我是初级程序员,也是这个网站的新手。
【问题讨论】:
-
看看这个:stackoverflow.com/questions/1862590/…也许有帮助。
标签: c# wpf backgroundworker documentviewer