так что все взаимодействие с коллекцией происходит в одном потоке - копирование обычно не является дорогой частью.

х дней я пытаюсь решить следующую проблему: у меня есть элемент управления WPF, где WrapPanel связана с ObservableCollection. Действие изменяет содержимое коллекции ObservableCollection. Содержимое загружается в BackgroundWorker. Сразу после действия, вызвавшего изменение содержимого, новый контент необходим в цикле foreach. Проблема в том, что загрузка контента идет медленно, поэтому для его подготовки нужно немного.

Моей первой попыткой было подождать фонового работника, пока для свойства IsBusy не будет установлено значение false. Но свойство IsBusy никогда не менялось во время ожидания! Вторая попытка состояла в том, чтобы попытаться манипулировать ObservableCollection непосредственно из BackgroundWorker. Конечно, безуспешно, потому что ObservableCollection находится в другом потоке, чем BackgroundWorker.

Я действительно очень много читал о том, как манипулировать контентом в многопоточном режиме. Но никто из них не работал. Пробные решения с помощью Dispatcher, "ThreadSafeObservableCollection", .....

Может кто-нибудь сказать мне, как я могу решить эту проблему? Есть ли простой способ редактировать содержимое потока пользовательского интерфейса в другом потоке? Или как правильно ждать завершения работы BackgroundWorker?

РЕДАКТИРОВАТЬ: Но как я могу дождаться окончания работы BackgroundWorker ???

Ответы на вопрос(4)

Ваш ответ на вопрос