Пример имитации службы погоды с помощью диспетчера
Обновлен: Ноябрь 2007
В этом примере демонстрируется, как сделать так, чтобы при выполнении блокирующей операции интерфейс приложения не переставал отвечать.
В данном примере эмулируется работа приложения службы погоды, которое запрашивает удаленный ресурс. Во время запроса приложением удаленного ресурса Пользовательский интерфейс должен отвечать на запросы. Для этого вводится фоновый поток, извлекающий информацию. После завершения работы потока он передает управление диспетчеру потока Пользовательский интерфейс.
Фоновый поток создается путем вызова метода BeginInvoke объекта-делегата. Это асинхронный вызов, использующий пул потоков, поэтому никакой другой работы по созданию потока выполнять не требуется.
Задержка при подключении к удаленной службе имитируется путем перевода рабочего потока в спящий режим. После завершения выполнения задания в объект Dispatcher потока Пользовательский интерфейс помещается другое задание для обновления Пользовательский интерфейс с использованием данных прогноза погоды.
Этот образец также демонстрирует анимацию и раскадровки. Большая часть анимации определяется в файле XAML, а запуск и остановка анимации обрабатывается в коде поддержки.
Обсуждение этого примера см. в разделе Модель потоков.
В этом примере описывается конкретная функциональная возможность Windows Presentation Foundation, и поэтому рекомендации по разработке приложений не соблюдаются. Более полное рассмотрение Windows Presentation Foundation (WPF) и рекомендации по тактике разработки приложений Microsoft .NET Framework см. в следующих разделах:
Специальные возможности: Рекомендации по специальным возможностям
Локализация: Общие сведения о глобализации и локализации WPF
Производительность: Улучшение производительности приложений WPF
Безопасность: Безопасность Windows Presentation Foundation
Построение примера
Установите пакет средств разработки программного обеспечения для Windows и откройте окно командной строки среды его построения. В меню "Пуск" выделите пункты "Все программы", "Пакет SDK для Microsoft Windows", а затем "Оболочки CMD".
Загрузите образец, как правило из документации пакета SDK, на жесткий диск.
Чтобы построить образец из окна командной строки среды построения, перейдите в исходный каталог образца. В командной строке введите MSBUILD.
Чтобы построить образец в Microsoft Visual Studio, загрузите решение образца или файл проекта и нажмите сочетание клавиш CTRL + SHIFT + B.
Выполнение примера
Для запуска скомпилированного образца в окне командной строки среды построения, выполните EXE-файл в папке Bin\Debug или Bin\Release, содержащихся в папке кода источника образца.
Для запуска скомпилированного образца с помощью отладки в Visual Studio, нажмите клавишу F5.
См. также
Задачи
Пример однопотокового приложения с длительным выполнением вычислений
Пример многопоточного веб-обозревателя
Пример Disable Command Source Via System Timer