Windows Phone 8.1。异步方法有效,但不会返回结果

时间:2015-01-09 17:08:49

标签: c# windows-phone-8 async-await

我对Windows Phone 8.1的C#应用​​程序中的async / await方法有一点问题

我正在创建一个简单的应用程序,用于从我的服务中获取数据并将其保存在用户设备上。

我有这段代码:

public static class ScheduleParser
{
    public static async Task<string> GetSchedule(string groupNumber)
    {
        string siteAddress = "site.com";
        siteAddress = string.Format(siteAddress, groupNumber);
        var client = new HttpClient();

        var response = await client.GetStringAsync(siteAddress);
        return response;
    }
  ...
  }

我以这种方式使用它:

  private async void  ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
       var schedule = await ScheduleParser.GetSchedule("1111111");
    }

我在真实设备上调试我的应用。调用GetSchedule时,我发现它运行良好并返回一个值。但我没有收到ButtonBase_OnClick中的值。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

在您展示的代码中,您实际上并未使用结果。 schedule是未使用的变量。由于编译器可以证明该值永远无法读取,因此首先不必创建变量。

当您实际使用值时,您将能够看到方法调用的结果。