HttpClient GetStringAsync — никогда не возвращается

Новый веб-API ASP.NET HttpClient давал мне какие-то странные результаты. Вот мой код:

class Program {

    static async void Main(string[] args) {

        var address = "http://localhost:3895/api/urls";

        Console.WriteLine(await getStringAsync(address));
        Console.ReadLine();

    }

    public static async Task<string> getStringAsync(string uri) {

        var httpClient = new HttpClient();
        return await httpClient.GetStringAsync(uri);
    }
}

Это никогда не возвращается, и консоль внезапно появляется и исчезает. Когда я изменяю код, как показано ниже, он работает так, как должен:

static void Main(string[] args) {

    var address = "http://localhost:3895/api/urls";

    Console.WriteLine(getString(address));
    Console.ReadLine();

}

public static string getString(string uri) { 

    var httpClient = new HttpClient();

    return httpClient.GetStringAsync(uri).Result;
}

Любая идея о том, что будет проблема?

5
задан Robaticus 26 March 2012 в 19:24
поделиться