У меня есть класс с методом (CreateDocument), который запускает событие в конце. Аргументы события содержат FixedDocument. В моем коде MainWindow я пытаюсь установить DocumentViewer Document как:
void lpage_DocCreated(object sender, LabelDocumentEventArgs e)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
new DispatcherOperationCallback(delegate
{
FixedDocument fd = e.doc;
documentViewer1.Document = fd;
documentViewer1.FitToWidth();
return null;
}), null);
}
Я получаю «Вызывающий поток не может получить доступ к этому объекту, потому что другой поток владеет им». на линии documentViewer1.Document = fd;
Я могу обновить индикатор выполнения в другом обработчике событий, который запускается тем же методом, пока он работает:
Int32 progress = Int32.Parse(sender.ToString());
progBar.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Normal,
new DispatcherOperationCallback(delegate
{
progBar.Value = progress;
return null;
}), null);
Я не могу понять, почему я не могу установить документ, когда я делаю то же самое, когда устанавливаю значение индикатора выполнения.