У меня есть два окна WPF Window1.xaml и window2.xaml. В window2.xaml.cs у меня есть одна функция, которая выполняет некоторые сложные вычисления и отображает промежуточные результы на TextBlock.Как открыть и обновить окно WPF путем потоковой передачи
Теперь, что я хочу. , нажав на кнопку Window1.xaml. Я хочу открыть Window2.xaml в качестве диалогового окна и выполнить сложную функцию windows2.xaml.
Если я вызываю сложную кнопку на событии загрузки Window2.xaml, тогда окно dilog появляется после выполнения сложной функции.
Как это сделать путем Threading.
private void Window_Loaded (отправитель объекта, RoutedEventArgs e) { Тема t = новая тема (ComplexFunction); t.Start(); } и ComplexFunction() { // делать что-то UpdateStatus ("adasd"); // что-то делать UpdateStatus ("dsad"); } Это дает ошибку времени выполнения. Вызывающий поток не может получить доступ к этому объекту, потому что ему принадлежит другой поток UpdateStatus (состояние строки) { StatusText.AppendText (status + "\ r"); } –
@Jeevan Bhatt: Если вы получаете доступ к любому элементу, созданному в UIThread, вам может потребоваться попросить диспетчера оказать вам услугу. 'myDispatcher.BeginInvoke (DispatcherPriority.Background, новое действие (() => {// Код, доступный для UIElement}));' где myDispatcher является ссылкой на Dispatcher.CurrentDispatcher Установите это перед вызовом потока. – Amsakanna