У меня возникли проблемы с получением диспетчера для запуска делегата, который я передаю ему при модульном тестировании. Все отлично работает, когда я запустить программу, но, во время тестирования устройства следующего код не будет работать:Использование диспетчера WPF в модульных тестах
this.Dispatcher.BeginInvoke(new ThreadStart(delegate
{
this.Users.Clear();
foreach (User user in e.Results)
{
this.Users.Add(user);
}
}), DispatcherPriority.Normal, null);
У меня есть этот код в моем ViewModel базового класса, чтобы получить грузоотправитель:
if (Application.Current != null)
{
this.Dispatcher = Application.Current.Dispatcher;
}
else
{
this.Dispatcher = Dispatcher.CurrentDispatcher;
}
Есть ли что-то, что мне нужно для инициализации диспетчера для модульных тестов? Диспетчер никогда не запускает код в делегате.
Какая ошибка вы получаете? –
У меня нет ошибки. То, что передается BeginInvoke на Диспетчере, никогда не запускается. –
Я буду честен и скажу, что мне не пришлось тестировать модель представления, в которой пока еще используется диспетчер. Возможно ли, что диспетчер не работает. Вызов Dispatcher.CurrentDispatcher.Run() в вашей тестовой справке? Мне любопытно, поэтому опубликуйте результаты, если вы их получите. –