EDITADO: En Windows Phone llamo a HttpWebRequest.BeginGetResponse
en un hilo separado que comencé. Luego llamo a MessageBox.Show(). El problema es que no se llama a la devolución de llamada hasta que descarto el MessageBox.La devolución de llamada de HttpWebRequest está bloqueada por UI
void GetResponseCallback(IAsyncResult asynchronousResult) {
//Not getting called until I dismiss MessageBox
}
void getWeb() {
Thread.Sleep(1000);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.Method = "GET";
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
}
new Thread(getWeb).Start(); //Start a new thread
MessageBox.Show();
¿Debería el MessageBox estar bloqueando la devolución de llamada en el hilo de fondo?
pequeña pregunta: ¿Por qué crear hilo separado 'nueva rosca (GetWeb)' para el método 'GetWeb()' que ya es asíncrono por sí mismo (el método 'request.BeginGetResponse (...)' hace su trabajo en segundo plano)? –
La idea es que tendré un bucle en el hilo de fondo que continuamente envía solicitudes web con una pausa de un par de minutos entre cada solicitud. ¿Resolverá mi problema si llamo a BeginGetResponse en el hilo de UI? – user1740959
Podría tener que ver con lo que viene * después * de la llamada, ¿No se está llamando nunca al método, o se pulsa el método de devolución de llamada y no se llama al código que dirige la llamada a la IU? Parece que tienes algún tipo de estancamiento. – casperOne