Вы хотите запустить SomeMethod()
в другом потоке, а затем перезвонить на Dispatcher
, чтобы обновить прогресс.Действительно, если пользовательский индикатор выполнения подключен к какому-либо элементу пользовательского интерфейса, реализация должна обработать обратный вызов в потоке пользовательского интерфейса.
Возможно, вы захотите что-то вроде:
public IconManagerModel(IStatusBar statusBar)
{
StatusBar = statusBar;
var thread = new Thread(new ThreadStart(SomeMethod));
thread.Start();
}
SomeMethod()
теперь будет работать в другом потоке, поэтому, если вы обновите прогресс в потоке пользовательского интерфейса, вы должны увидеть желаемые результаты.