Iam new для MVVM и WPF. MY WPF-приложение будет вызывать веб-службу каждые 2 минуты и отображать ответ в пользовательском интерфейсе. Предоставьте возможность вручную вызвать тот же веб-сервис, нажав кнопку в пользовательском интерфейсе. Мой тайм-аут веб-службы составляет 5000 мс. Мой Q, если веб-сервис занимает более 1000 мс. Как избежать обхода пользовательского интерфейса. Plz предлагает некоторые подсказки для реализацииИзбегайте подвешивания пользовательского интерфейса в приложении WPF
ответ
Это было бы хорошим местом для реализации нескольких потоков, выполняющих всю связь в веб-приложении в одном потоке, чтобы поток основного пользовательского интерфейса реагировал на ввод пользователей.
Ниже приведены несколько ссылок, чтобы вы собираетесь:
Как насчет использования Threading? MSDN имеет хорошую рецензию от спины в 2007 году по основам:
WPF Threads: Build More Responsive Apps with The Dispatcher
Убедитесь, что вы не только обратить внимание на Dispatcher, но и второй по BackgroundWorker
.
Если вы не знакомы с Threading вообще (что, кажется, что это может быть), то вы, вероятно, следует начать с простых основ Threading от MSDN:
Вы можете используйте асинхронный веб-сервис для связи с веб-службой.
примеры:
http://patconroy.wordpress.com/2009/01/22/asynchronous-web-service-invocation/
http://www.codeguru.com/csharp/csharp/cs_webservices/security/article.php/c9179
http://ondotnet.com/pub/a/dotnet/2005/08/01/async_webservices.html
В принципе, вы не должны делать каких-либо работ в потоке пользовательского интерфейса, который может принимать любое время для выполнения. Вы должны иметь в своей модели View некоторую форму объекта Command, привязанного к вашей кнопке View. Эта команда должна в другом потоке асинхронно вызывать ваш вызов веб-службы. Таким образом, пользовательский интерфейс никогда не будет висел, ожидая возвращения команды, потому что команда вернется очень быстро. Когда асинхронный вызов возвращается, вы можете обрабатывать все элементы пользовательского интерфейса, которые вам нужно сделать.
Используйте рабочий стол «Background», и если вы хотите вернуть данные в пользовательский интерфейс, используйте диспетчер. Если используется .net 4.0, используйте Задачи.
- 1. Обновление ObservableCollection без подвешивания пользовательского интерфейса
- 2. Внедрение двойного пользовательского интерфейса в приложении WPF
- 3. Избегайте блокировки пользовательского интерфейса из-за блокировки в WPF
- 4. Android: вычислить и обновить TextView без подвешивания пользовательского интерфейса
- 5. Изменение пользовательского интерфейса WPF
- 6. Создание пользовательского интерфейса в WPF
- 7. Аннотация и контроль пользовательского интерфейса в приложении WPF
- 8. Закодированный тест пользовательского интерфейса не находит компонент в приложении WPF
- 9. Дизайн пользовательского интерфейса в WPF - создание нестандартного пользовательского интерфейса
- 10. Когда вызывать SynchronizationContext.SetSynchronizationContext() в приложении пользовательского интерфейса?
- 11. WPF - Приостановка темы пользовательского интерфейса?
- 12. WPF ждет завершения пользовательского интерфейса
- 13. WPF MVVM - Обновление пользовательского интерфейса
- 14. WPF-плагин, создающий стратегию пользовательского интерфейса
- 15. Обновление пользовательского интерфейса с DataBind в WPF
- 16. Путаница об обновлении пользовательского интерфейса в WPF
- 17. Почему масштабируемость пользовательского интерфейса важна в WPF?
- 18. Рисование интерактивного пользовательского интерфейса в WPF
- 19. Обновление пользовательского интерфейса с BackgroundWorker в WPF
- 20. Как подавить исключения пользовательского интерфейса в wpf?
- 21. Нет больше пользовательского интерфейса в WPF?
- 22. Обновление элементов пользовательского интерфейса в WPF MVVM
- 23. Создание элемента пользовательского интерфейса в WPF
- 24. Обработка второго потока пользовательского интерфейса в WPF
- 25. Как формируются события пользовательского интерфейса в WPF?
- 26. WPF: преобразовать строку в элемент пользовательского интерфейса
- 27. Создание пользовательского интерфейса в фоновом потоке WPF?
- 28. Обновление элемента пользовательского интерфейса в wpf
- 29. ViewModel прерывает автоматизацию пользовательского интерфейса в WPF
- 30. Избегайте переключения фокуса при использовании автоматизации пользовательского интерфейса
Вы не можете просто увеличить время ожидания в веб-сервисе? –
@ArsenMkrt - Я не хочу ждать 5 секунд, чтобы пользовательский интерфейс отвечал ... не говоря уже дольше. –