Async and Await with HttpWebRequest.GetResponseAsync

Próbuję użyć Async and Await podczas tworzenia żądania internetowego i stwierdzam, że nigdy nie wychodzi poza linię oczekiwania. Robię to z aplikacji Metro, ale zweryfikowałem też problem w aplikacji WinForm.

public async Task<string> DoSomething()
{
    string url = "http://imgur.com/gallery/VcBfl.json";
    HttpWebRequest request = HttpWebRequest.CreateHttp(url);

    var ws = await request.GetResponseAsync();

    return ws.ResponseUri.ToString(); ;
}

Jeśli nie korzystam z oczekiwania, zamiast tego wykonuję synchroniczne oczekiwanie, działa, ale potrzebuję tego, aby działać asynchronicznie.

Czego brakuje mi w tym kodzie, który powoduje oczekiwanie, że nigdy nie powróci?

questionAnswers(1)

yourAnswerToTheQuestion