2015-08-12 1 views
-1

У меня есть приложение wpf с вкладкой, которая показывает элемент управления WebBrowser, который загружает страницу заказов данного клиента. На этой странице есть несколько вызовов для документа и фреймов, после чего элемент управления правильно отображает содержимое в пользовательском интерфейсе.progressbar для управления веб-браузером в wpf C#

Мы планируем реализовать индикатор прогресса для этой вкладки, и мы использовали панель прогресса с фоновым рабочим.

Мы устанавливаем свойство showbar для версии progress на true в событии BrowserNavigating() и отображаем свойство false на DocumentComplete() управления браузером. Поскольку я делаю это, индикатор прогресса не будет отображаться в пользовательском интерфейсе непрерывно до тех пор, пока все http-вызовы не будут успешно завершены. Также он включается и выключается и в конечном итоге дает плохой пользовательский интерфейс.

Когда мы пытаемся загрузить страницу заказов, она делает не менее 6-10 http-вызовов на сервере. Итак, можем ли мы дождаться завершения всех вызовов и только затем скрыть индикатор выполнения? Как отслеживать эти асинхронные вызовы?

Я думаю, мы можем использовать какую-то структуру данных (например, Circular LL) для хранения всех вызовов (BrowserNavigating и DocumentComplete), но как узнать, все ли увольнения или нет, до того, как я жду события DocumentCompelte ?

ответ

1

Не знаю, как вы могли это исправить, но, возможно, вы можете поместить задержку на скрытие индикатора выполнения, используя System.Threading.Thread.Sleep(x); и заменив x на миллисекунды. Таким образом, он не будет скрываться в течение некоторого времени, пока может произойти следующий HTTP-вызов. После того, как все звонки были сделаны, он будет отображаться в течение этого времени, но не навсегда.

Смежные вопросы