0

我有一个带有以下代码的 windows phone 7 应用程序

ServiceReference1.SMSWarriorServiceSoapClient ws = new ServiceReference1.SMSWarriorServiceSoapClient();
ws.BalanceCompleted += new EventHandler<ServiceReference1.BalanceCompletedEventArgs>(ws_BalanceCompleted);
ws.BalanceAsync(textBox1.Text, textBox2.Password);

现在我也想为 Windows 8 商店应用程序制作它。我试试这个

var client =  new ServiceReference1.SMSWarriorServiceSoapClient() ;
var result =  client.BalanceAsync("user", "pass");
resultDetails.Text = result.ToString ;

但没有运气,我也尝试了等待,但我不知道如何使用它

4

2 回答 2

0

如果你使用 await 那么你必须使用 async 关键字或使用 Task

var client =  new ServiceReference1.SMSWarriorServiceSoapClient() ;
var result =  await client.BalanceAsync("user", "pass");
resultDetails.Text = result.ToString ;

例如:

// Put the keyword, async on the declaration of the event handler.
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    var respose=await <some async operation >
}
于 2013-10-19T16:10:45.810 回答
0

如果您从事件句柄调用 Web 服务方法,请使用它。

private async void Button_Click_1(object sender, RoutedEventArgs e)
{
    var client = new ServiceReference1.SMSWarriorServiceSoapClient();
    var result = await client.BalanceAsync("user", "pass");
    resultDetails.Text = result.ToString();
}

如果您从方法调用 Web 服务方法,请使用它。

private async Task ServiceCall()
{
    var client = new ServiceReference1.SMSWarriorServiceSoapClient();
    var result = await client.BalanceAsync("user", "pass");
    resultDetails.Text = result.ToString();
}

ServiceCall()确保您使用await关键字调用方法。

于 2013-10-19T16:34:36.830 回答