L'appel de méthode asynchrone sur le bouton cliquez sur

J'ai créé Windows Phone 8.1 projet et je suis en train de lancer asynchrone de la méthode GetResponse(string url) sur le bouton cliquez sur et en attente de la méthode à la fin, mais la méthode est de ne jamais se terminer. Voici mon code:

private void Button_Click(object sender, RoutedEventArgs 
{
      Task<List<MyObject>> task = GetResponse<MyObject>("my url");
      task.Wait();
      var items = task.Result; //break point here
}

public static async Task<List<T>> GetResponse<T>(string url)
{
    List<T> items = null;
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

    var response = (HttpWebResponse)await Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null);
    try
    {
        Stream stream = response.GetResponseStream();
        StreamReader strReader = new StreamReader(stream);
        string text = strReader.ReadToEnd();
        items = JsonConvert.DeserializeObject<List<T>>(text);
    }
    catch (WebException)
    {
        throw;
    }
    return items;
}

Il va s'accrocher sur la tâche.Wait().

J'ai changé mon bouton cliquez sur la méthode async et utilisé attendre avant que la méthode asynchrone et j'obtiens le résultat(await GetResponse<string>("url")). Quel est le problème avec Task<List<string>> task = GetResponse<string>("url")?
Ce que je fais mal?

Merci pour l'aide!

  • Juste une petite remarque, c'est une convention générale qui async méthodes sont suffixé avec Async, par exemple, votre nom de méthode serait GetResponseAsync.