Ответ 1
Скорее всего, вам не нужно ничего делать, если вы уже используете асинхронные методы. В зависимости от технологии, которую вы используете для вызова веб-службы, в конечном счете, она упадет до Win32 API, чтобы заставить вызов получать байты из сети, и с этой целью он будет использовать завершение ввода/вывода Порты для обработки асинхронных вызовов.
Основной предпосылкой для портов завершения ввода-вывода является то, что при ожидании операций ввода-вывода существует пул потоков, который остается в ожидании завершения операций ввода-вывода (при условии, что вы зарегистрировались для использования портов завершения ввода-вывода). Когда ваша зарегистрированная операция завершается, поток из пула потоков портов ввода-вывода используется для обработки обратного вызова.
Конечно, выйдя на порт завершения ввода-вывода, ваш поток может двигаться дальше, чтобы выполнить больше работы или завершить работу, выбор зависит от вас.
Следующее должно помочь описать это больше:
Порты ввода-вывода ввода/вывода:
http://msdn.microsoft.com/en-us/library/aa365198(VS.85).aspx
Входы завершения ввода/вывода (WayBack Machine):