C# WindowsPhone8.1。异步方法可以工作,但不';不要返回结果
我对WindowsPhone8.1的C#应用程序中的异步/等待方法有点问题 我正在创建一个简单的应用程序,用于从我的服务中获取数据并将其保存在用户设备上 我有这个密码: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";
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");
}