Я нашел другой (самый простой) способ:
Добавить для просмотра действия модели, которое должно вызываться в Dispatcher:
public class MyViewModel
{
public Action<Action> CallWithDispatcher;
public void SomeMultithreadMethod()
{
if(CallWithDispatcher != null)
CallWithDispatcher(() => DoSomethingMetod(SomeParameters));
}
}
И добавьте этот обработчик действия в конструктор представления:
public View()
{
var model = new MyViewModel();
DataContext = model;
InitializeComponent();
// Here
model.CallWithDispatcher += act => _taskbarIcon.Dispatcher
.BeginInvoke(DispatcherPriority.Normal, act) ;
}
Теперь у вас нет проблем с тестированием, и его легко реализовать.
Я добавил его на мой сайт