Вызов службы собственного размещения WCF в Windows SVC без блокировки пользовательского интерфейса - PullRequest
0 голосов
/ 11 мая 2011

У меня есть служба WCF, размещенная в Windows SVC. Я выполняю его обычным способом из приложения winforms, создаю канал и т.д., а затем вызываю метод. На стороне сервера нет файла .svc.

Однако, когда я вызываю метод в службе Windows из графического интерфейса, это блокирует интерфейс. Есть ли способ сделать это, не блокируя пользовательский интерфейс?

Спасибо

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Посмотрите либо на класс BackgroundWorker, либо на новый материал Task Parallel Library.То, что вы хотите - это отменить вызов в службу и описать, что делать, когда ответ получен, но не блокировать пользовательский интерфейс во время ожидания ответа.В некоторых случаях пользовательский интерфейс может ничего не набрать do , пока он ожидает ответа, например, в случае диалогового окна поиска.Пока ответ не вернется, пользовательский интерфейс на самом деле ничего не сможет сделать.Но выполнение поиска в фоновом режиме означает, что пользовательский интерфейс thread был освобожден.Это означает, что вы все еще сможете перемещать и изменять размеры окна или, возможно, переключаться на другую форму в том же приложении, пока вы ждете.Это достаточно веская причина для выполнения вызовов в фоновом режиме.

0 голосов
/ 11 мая 2011

Почему вы не используете асинхронные методы? Для каждого метода, сгенерированного для вас IDE, существует другой метод с суффиксом Async. Таким образом, вы можете асинхронно вызывать веб-сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...