У меня есть UserControl, который добавляется в главное окно.Основной код постоянно получает TCP-сообщения и соответственно взаимодействует с UserControl.Одним из методов UserControl, который вызывается Main, является AddMessage:
internal void AddMessage(Paragraph p)
{
if (txtViewer.Dispatcher.CheckAccess())
{
txtViewer.Document.Blocks.Add(p);
}
else
{
Dispatcher.Invoke(new Action(() =>
{
txtViewer.Document.Blocks.Add(p);
}
));
}
}
Строка в Dispatcher.Invoke всегда вызывает исключение InvalidOperationException.Я смотрел вокруг на подобные проблемы, и большинство из них были случаи, когда Dispatcher не использовался, поэтому я не знаю, почему мой код не работает.Я полагаю, что я использую его неправильно, или это может быть связано с тем, что объект Paragraph передается между потоками.
Спасибо, Джаред