Как позвонить в Winforms-стиле Invoke / Delegate от MVVM? - PullRequest
2 голосов
/ 12 октября 2010

Я взламываю какой-то код, который, кажется, был запущен, по крайней мере в теории, как проект MVVM в Expression Blend моим предшественником в этой компании.

У меня есть поток, работающий в фоновом режиме, который выполняет некоторые операции с элементами по мере их возникновения. Чтобы предотвратить любые конфликты, у меня также есть поток, выполняющий любые операции, к которым обращаются мои пользователи.

После того, как эти операции завершены, я хотел бы вызвать MessageBox, чтобы получить сводку операций, инициированных пользователем, но теперь, когда они выполняются в своем собственном потоке, обработчик событий finishProcessing теперь работает на фоновый поток вместо потока интерфейса, и это заставляет мои MessageBoxes появляться немодально.

Еще во времена WinForms я бы справился с этим, используя InvokeRequired, Invoke и Delegate. Я читал, что это было заменено чем-то, называемым «Dispatcher», но класс ViewModel, который я использую, похоже, не имеет объект Dispatcher.

Используемый мной класс «thisViewModel» наследует класс «WorkspaceViewModel», который наследует «ViewModelBase», оба из которых выглядят сгенерированными для меня ...

Извините, если все это немного расплывчато, но я не написал код. В любом случае, кто-нибудь знает, откуда я могу связаться с этим «Диспетчером» отсюда?

1 Ответ

0 голосов
/ 12 октября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...