В какой-то момент в моем приложении Silverlight мне нужно выполнить тяжелую операцию, которая замораживает поток пользовательского интерфейса примерно на 4 секунды. Прежде чем выполнять операцию, я пытаюсь отобразить простой текстовый индикатор с помощью элемента управления TextBlock
.
StatusTextBlock.Text = "Performing Some Operation...";
System.Threading.Thread.Sleep(4000); // Just as an example
Проблема в том, что поток пользовательского интерфейса зависает до того, как текст элемента управления TextBlock
обновляется. Как я могу получить текст уведомления, отображаемый до начала операции?
Кроме того, перенос тяжелой операции в фоновый поток для меня не вариант, поскольку он имеет дело с объектами пользовательского интерфейса (переключает визуальный корень приложения) и должен выполняться в потоке пользовательского интерфейса.