加載和查看我的xps文檔工作得很好,但加載文檔需要很長時間,並且您知道導致UI看起來不活動。documentviewer和backgroundworker
XpsDocument xpsDocument = new XpsDocument(@"Resources\maintManual.xps", FileAccess.Read);
documentViewer1.Document = xpsDocument.GetFixedDocumentSequence();
所以,我想通過BackgroundWorker的加載文件:作爲爲 「DoWork的」 執行UI 「崩潰」 很快
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括號中的代碼在它自己的背景工作者之外工作得很好,所以我知道代碼是正確的。一旦使用了後臺工作器,它將停止工作。如果我沒有提供足夠的信息,請提前原諒我。我是初級編碼員,也是本網站的新手。
看看這個:http://stackoverflow.com/questions/1862590/how-to-update-gui- with-backgroundworker也許有幫助。 – BWA