Вы не можете, в основном. Или, по крайней мере, вы не должны. У вас есть метод, который предназначен для синхронного , на платформе, которая предназначена для асинхронного IO.
По сути, вы должны разработать свой код для работы с платформой. Примите, что будет асинхронным, и заставьте вызывающий код справиться с этим.
Обратите внимание, что когда выйдет C # 5 и будет поддерживаться Windows Phone, все это будет на много проще, если использовать async
. Вы бы вернули Task<ServerResult>
из метода и await
результат WebClient
. Если вы разрабатываете только для удовольствия (поэтому не возражайте против работы с CTP, в котором есть некоторые ошибки, и который может быть недействительным для доставки на рынок приложений), вы можете сделать это сегодня .