xpsドキュメントの読み込みと表示はうまくいきますが、ドキュメントの読み込みに時間がかかり、わかっているようにUIが非アクティブに見えます。だから、documentviewerとbackgroundworker
XpsDocument xpsDocument = new XpsDocument(@"Resources\maintManual.xps", FileAccess.Read);
documentViewer1.Document = xpsDocument.GetFixedDocumentSequence();
、私は、BackgroundWorkerの通過ドキュメントをロードしようとしています:
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は" UI "クラッシュ"(完全ロックアップ)が実行されるよう。私は理由を見つけることができないようです。バックグラウンドワーカー経由で文書を呼び出す方がいいですか?私が言ったように、Doworkの括弧内のコードは、自分の上にバックグラウンドワーカーの外でうまく働くので、コードが正しいことが分かります。バックグラウンドワーカーを使用すると、バックグラウンドワーカーは動作を停止します。私が十分な情報を含んでいない場合は、事前に私を許してください。私はジュニアコーダーであり、このサイトの初心者です。
ルック:http://stackoverflow.com/questions/1862590/how-to-update-gui-バックグラウンドワーカーは助けてくれるかもしれません。 – BWA