У меня проблема с потоком, я хочу отобразить текст на своем txtoutput (текстовое поле), когда получаю SMS-сообщение, которое я сделал, но не работает ,Вызывающий поток не может получить доступ к этому объекту, потому что ему принадлежит другой поток
private void Output(string text)
{
this.expander.IsExpanded = true; // Exception catched: The calling thread can not access this object because a different thread owns it.
if (txtOutput.Dispatcher.CheckAccess())
{
txtOutput.AppendText(text);
txtOutput.AppendText("\r\n");
}
else
{
this.txtOutput.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)delegate
{
// txtOutput.AppendText += text Environment.NewLine;
txtOutput.AppendText(text);
txtOutput.AppendText("\r\n");
});
}
}
thanks; это сработало, но мой разум не делает, почему я устанавливаю расширитель неправильно? – tp1
Я понятия не имею, что такое расширитель, но я предполагаю, что это какой-то контроль? и вы пытаетесь изменить элемент управления в неправильном потоке, вы получаете исключение, поэтому вы должны использовать диспетчер. – Peter