Foros del Web » Programación para mayores de 30 ;) » .NET »

como devolver valor en metodo asincrono?

Estas en el tema de como devolver valor en metodo asincrono? en el foro de .NET en Foros del Web. Buenas, después de mucho buscar no he conseguido dar con el problema que tengo: os indico a ver si me podeis ayudar, estoy llamando desde ...
  #1 (permalink)  
Antiguo 17/06/2014, 09:37
 
Fecha de Ingreso: enero-2011
Mensajes: 12
Antigüedad: 13 años, 3 meses
Puntos: 0
como devolver valor en metodo asincrono?

Buenas, después de mucho buscar no he conseguido dar con el problema que tengo:

os indico a ver si me podeis ayudar, estoy llamando desde una pagina principal a una clase que lee un JSON de manera asincrona, pero una vez leido no soy capaz de devolver la informacion a la pagina principal.
Es una aplicacion para Windows Phone 7.

Codigo pagina principal:

private void btnPrueba_Click(object sender, RoutedEventArgs e)
{


Dictionary<string,string> parametros = new Dictionary<string,string>();
parametros.Add("login", "12345678R");
parametros.Add("password", "123123");

objPrueba = new prueba();

objPrueba.doPost("http://prueba.es/login", parametros);

}

Clase Prueba.cs

public void doPost(string url, Dictionary<string, string> parametros)
{
System.Uri myUri = new System.Uri(url);
HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(myUri);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";

//relleno variable con los parametros
foreach (KeyValuePair<string, string> D in parametros)
{
parametrosData = parametrosData + D.Key + "=";
parametrosData = parametrosData + D.Value + "&";
}


bool a = myRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), myRequest).IsCompleted;

string b = "1231232";


}


void GetRequestStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
// End the stream request operation
Stream postStream = myRequest.EndGetRequestStream(callbackResult);

// Create the post data
string postData = parametrosData;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);

// Add the post data to the web request
postStream.Write(byteArray, 0, byteArray.Length);
postStream.Close();

// Start the web request




myRequest.BeginGetResponse(new System.AsyncCallback(GetResponsetStreamCallback), myRequest);
}

void GetResponsetStreamCallback(IAsyncResult callbackResult)
{
HttpWebRequest request = (HttpWebRequest)callbackResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(callbackRe sult);
using (StreamReader httpWebStreamReader = new StreamReader(response.GetResponseStream()))
{
string result = httpWebStreamReader.ReadToEnd();
//For debug: show results
Debug.WriteLine(result);

//AQUI NECESITO DEVOLVER EL RESULTADO A LA MAINPAGE.CS



}
}



Muchas Gracias

Etiquetas: devolver, metodo, valor, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:15.