Окно WPF не завершает рендеринг при запуске загрузки - PullRequest
0 голосов
/ 27 июля 2011

Я пишу небольшую утилиту для скачивания файлов.Метод DownloadFile () вызывается для Window_Loaded () события моего MainWindow .Поскольку метод DownloadFile требует значительных ресурсов, MainWindow не завершает рендеринг на экране при запуске загрузки.Сразу после окончания загрузки я вижу фактические элементы управления в моей форме WPF.

Для управления этим я использую следующий код DoEvents () , но все же этоне работает.Я вызываю эту функцию после InitializeComponent () в конструкторе Form и непосредственно перед вызовом DownloadFile () в событии Window_Loaded .

private void DoEvents()
        {
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
                                                  new Action(delegate { }));
        }

Ответы [ 3 ]

1 голос
/ 27 июля 2011

Взгляните на метод DownloadFileAsync .

0 голосов
/ 27 июля 2011

всегда предлагается делать все попадания на сервер и загружать связанные вещи в отдельном потоке.Вы можете увидеть, как это сделать по следующей ссылке.

http://bathinenivenkatesh.blogspot.com/2011/07/wpf-build-more-responsive-ui.html

0 голосов
/ 27 июля 2011

Вместо этого вы должны использовать BeginInvoke (с опцией Background) и поместить туда DownloadFile.

...