В проекте C# WPF у меня есть фоновый поток, который должен обновить некоторые UserControls. Чтобы сделать это, я использовал Dispatcher.Invoke:Когда выполняется код внутри Dispatcher.Invoke?
Dispatcher.Invoke(DispatcherPriority.Normal, (MethodInvoker)delegate()
{
// Code
}
Но я задаюсь вопросом:
- когда код внутри делегата будет выполняться в основном потоке?
- Для его выполнения можно остановить метод, обычно работающий на основном потоке?
- Может ли использование Dispatcher.Invoke привести к условиям гонки?
Спасибо большое, Emanuele
Этот код запускается в основном потоке пользовательского интерфейса, но нам нужно будет узнать больше о том, что вы пытаетесь (или о том, что вы видите), чтобы иметь возможность разумно ответить на остальную часть вашего вопроса. – ChrisF