Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WindowsPhone8.1。异步方法可以工作,但不';不要返回结果_C#_Windows Phone 8_Async Await - Fatal编程技术网

C# WindowsPhone8.1。异步方法可以工作,但不';不要返回结果

C# WindowsPhone8.1。异步方法可以工作,但不';不要返回结果,c#,windows-phone-8,async-await,C#,Windows Phone 8,Async Await,我对WindowsPhone8.1的C#应用程序中的异步/等待方法有点问题 我正在创建一个简单的应用程序,用于从我的服务中获取数据并将其保存在用户设备上 我有这个密码: public static class ScheduleParser { public static async Task<string> GetSchedule(string groupNumber) { string siteAddress = "site.com";

我对WindowsPhone8.1的C#应用程序中的异步/等待方法有点问题

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

我有这个密码:

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;
    }
  ...
  }
我在真实设备上调试我的应用程序。调用GetSchedule时,我看到它运行良好并返回一个值。但是我没有收到ButtonBase_OnClick中的值


如何修复此问题?

在您显示的代码中,您实际上没有使用结果<代码>计划是未使用的变量。由于编译器可以证明该值永远无法读取,因此它不需要首先创建变量


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

HttpClient
应使用包装在一个
中,以便在您完成后处理它。您是什么意思,但我在ButtonBase\u OnClick中没有收到该值?ScheduleParser.GetSchedule(“1111111”)不返回任何值作为示例,如果我编写的代码类似于var schedule=wait ScheduleParser.GetSchedule(“1111111”);doSomething()doSomething将不会被调用。@I3arnon否,不仅仅是在释放模式下。它在发布模式下更具攻击性,但它是一种优化,也可以在调试模式下进行。发布模式下的一切都可以在调试模式下完成。最后都是msbuild目标。默认情况下,这是发布模式和调试模式之间的区别。AFAIK此优化不会在调试模式下完成,因为它会使调试会话痛苦。还看到hans passant在stackoverflow中的某个地方说,现在找不到链接。@SriramSakthivel我个人见过它在调试模式下发生。@Servy您是否也在调试模式下打开了“优化代码”复选框?默认情况下,该选项将被禁用。(编辑:更正的打字错误)
  private async void  ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
       var schedule = await ScheduleParser.GetSchedule("1111111");
    }