2010-10-15 3 views
1

Я пишу класс для обработки запроса в Интернете. И у него есть метод, который фактически использует WebClient для выполнения основной работы. Когда метод DownloadStringCompleted был выполнен, я хочу вернуть значение ответа.Как получить синхронный ответ HTTP?

Я хочу использовать это так:

// the pubTimeLine() method returns the value 
// of the request to the web using WebClient  
textBlock1.DataContext = wp.pubTimeLine(url); 

Как это сделать? Или как получить синхронный ответ HTTP-запроса?

ответ

3

Вы никогда не должны делать синхронные сетевые вызовы, это заморозит ваш пользовательский интерфейс (и, следовательно, ваш телефон), что очень плохой пользовательский интерфейс.

Вместо делать это асинхронно, что-то вроде:

wp.pubTimeLine(url, result => textBlock1.DataContext = result); 

Если второй параметр является лямбда-выражение, содержащее функцию обратного вызова, которая вызывается, когда метод pubTimeLine осуществляется выполнение асинхронно.

+0

Да, спасибо ~ Я попробую – magicshui

+0

Возможно, это глупый вопрос, но я не знаю, как это работает? Не могли бы вы объяснить больше? Или дать мне ссылку на изучение ~ thanks ~ – magicshui

+0

Вот сообщение на аналогичную тему I написал некоторое время назад: http://justinmchase.com/post/2008/04/23/Thinking-Async-1-Asynchronous-Data-Access-in-Silverlight-20.aspx –

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