StartNowCommand
никогда не вызывает BackgroundWorker
- он просто синхронно выполняет метод DoStartNow
в потоке пользовательского интерфейса.Исходя из этого, я предполагаю, что когда вы нажимаете кнопку, связанную с командой StartNow
, вы видите, что ваш пользовательский интерфейс зависает ..?
Вы должны привязать свою кнопку к InstigateWorkCommand
, который на самом делевыполняет BackgroundWorker
код асинхронно.
В этой реализации я не думаю, что вам вообще понадобится StartNowCommand
.Я также не вижу обработчик событий DoWork
в вашей модели представления, поэтому я предполагаю, что он просто вызывает DoStartNow