Obtendo a resposta de um HttpWebRequest assíncrono

Eu estou querendo saber se há uma maneira fácil de obter a resposta de um httpwebrequest assíncrono.

Eu já vi essa perguntaAqui mas tudo o que estou tentando fazer é retornar a resposta (que normalmente é json ou xml) na forma de uma string para outro método em que eu possa analisá-la / lidar com ela de acordo.

Heres algum código:

Eu tenho esses dois métodos estáticos aqui que eu acho que são thread safe como todos os parâmetros são passados ​​e não há variáveis ​​locais compartilhadas que os métodos usam?

<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>

questionAnswers(4)

yourAnswerToTheQuestion