2012-05-13 2 views
1

Я имею в виду, например, метод AsyncGetter.Как отладить метод asynccallback

req = (HttpWebRequest) WebRequest.Create("http://www.google.com/ig/api?weather=" + city + "&hl=" + lang); 
req.Method = "GET"; 
req.BeginGetResponse(AsyncGetter, req); 

Когда я пользуюсь F11, он не вводит этот метод.

+0

Что происходит после того, как * * этот код? Если это выйдет из метода Main(), ваша программа завершится до того, как ответ будет получен. –

+0

После? Я выхожу из этого метода. –

ответ

1

Поместите другую точку останова в ваш асинхронный метод обратного вызова, в этот момент не нужно нажимать F11 (вы можете нажать F5 в этот момент), и пусть этот метод будет выполнен, как только вы получите ответ, он упадет до точки останова, которую вы установите внутри ваш метод обратного вызова.

Edit:

req.BeginGetResponse(new AsyncCallback(AsyncGetter), req); 

AsyncGetter():

private void AsyncGetter(IAsyncResult result){ 
    HttpWebRequest req = (HttpWebRequest)result.AsyncState; 
    ... 
} 
+0

Я так пробовал, но это не сработало, поэтому задал этот вопрос –

+0

. Тогда, скорее всего, проблема не в контрольных точках, а в ответе сервера, попробуйте указать полные данные заголовка, такие как 'req.UserAgent',' req.Accept' и т. Д. – Coder

+0

'req.Accept = null'' req.UserAgent бросил незавершенное исключение' –

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