다음 WPF 코드가 있고 "TextBox t = tabItem.Content TextBox;"예외가 발생합니다. 오류가 "다른 스레드가 소유하고 있기 때문에 호출하는 스레드는이 개체에 액세스 할 수 없습니다."라는 메시지가 나타납니다. 예외를 수정하려면 어떻게해야합니까?"호출 스레드가 다른 스레드가 소유하고 있기 때문에이 개체에 액세스 할 수 없습니다."해결 방법 WPF 응용 프로그램에서
감사합니다.
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
RichTextBox statusRichTextBox = new RichTextBox();
CloseableTabItem tabItem = new CloseableTabItem();
tabItem.Content = statusRichTextBox;
tabItem.Header = "New Tab";
MainTab.Items.Add(tabItem);
Thread t = new Thread(new ParameterizedThreadStart(worker));
t.Start(tabItem);
}
public void worker(object threadParam)
{
CloseableTabItem tabItem = (CloseableTabItem)threadParam;
TextBox t = tabItem.Content as TextBox; //exception here
if (t != null)
Window1.myWindow1.Dispatcher.BeginInvoke((Action)(() => { t.Text = "THIS IS THE TEXT"; }), System.Windows.Threading.DispatcherPriority.Normal);
}
같은 방법으로 사람들이 그것을 해결. 중복 된 타이틀 오류가 발생하지 않았습니까? 나중에 변경 했습니까? 어느 쪽이든, 오른쪽에 보이는 "관련"-> –
확실히 ** 길 ** 너무 많습니다. –
@ H.B. - 당신은 충분한 대리인이 있고, 하나를 골라 닫으십시오. – Kev