【发布时间】:2013-04-15 15:06:20
【问题描述】:
在进行 CredentialPickerResults 调用后,我的代码被跳过。登录界面不显示,代码跳转到下一个函数,没有完成当前函数中的代码。
完全跳过 Global.strUsername = credResults.CredentialUserName 和密码,直接进入 GetData() 函数。
public MainPage()
{
this.InitializeComponent();
GetCredentials();
GetData();
}
private async void GetCredentials()
{
CredentialPickerOptions credOptions = new CredentialPickerOptions()
{
AuthenticationProtocol = AuthenticationProtocol.Basic,
CredentialSaveOption = CredentialSaveOption.Selected,
CallerSavesCredential = true,
Caption = "Login",
Message = "Please enter your credentials",
TargetName = ".",
};
CredentialPickerResults credResults = await CredentialPicker.PickAsync(credOptions);
Global.strUsername = credResults.CredentialUserName;
Global.strPassword = credResults.CredentialPassword;
}
private async void GetData()
{
//get data
}
【问题讨论】:
-
它没有跳过它,您只是没有等待异步操作返回结果。您可以通过在 credResults 为 null 的条件下循环来解决此问题。
-
我将如何等待结果?不会把它放到一个循环中,只是一遍又一遍地调用同一个调用吗?
-
如果循环的中断条件是对象不是
null,那么循环只发生一次。
标签: c# windows windows-store-apps