Obtención de la respuesta de un HttpWebRequest asíncrono

Me pregunto si hay una manera fácil de obtener la respuesta de una httpwebrequest asíncrona.

Ya he visto esta preguntaaquí pero todo lo que estoy tratando de hacer es devolver la respuesta (que generalmente es json o xml) en forma de cadena a otro método donde luego puedo analizarla / tratarla en consecuencia.

Heres algún código:

Tengo estos dos métodos estáticos aquí, que creo que son seguros para subprocesos ya que todos los parámetros se pasan y no hay variables locales compartidas que los métodos usan.

<code>public static void MakeAsyncRequest(string url, string contentType)
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    request.ContentType = contentType;
    request.Method = WebRequestMethods.Http.Get;
    request.Timeout = 20000;
    request.Proxy = null;

    request.BeginGetResponse(new AsyncCallback(ReadCallback), request);
}

private static void ReadCallback(IAsyncResult asyncResult)
{
    HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
    try
    {
        using (HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult))
        {
            Stream responseStream = response.GetResponseStream();
            using (StreamReader sr = new StreamReader(responseStream))
            {
                //Need to return this response 
                string strContent = sr.ReadToEnd();
            }
       }
       manualResetEvent.Set();
    }
    catch (Exception ex)
    {
        throw ex;
   }
}
</code>

Respuestas a la pregunta(4)

Su respuesta a la pregunta