现在我想我明白为什么会发生这种情况了,所以我想我的问题是如何修改代码以按照我的意愿行事。
首先是代码。
private void btnLiveSignin_Click(object sender, RoutedEventArgs e)
{
var LoggedIn = Login();
busy.Visibility = System.Windows.Visibility.Visible; // Display the please wait message
if (LoggedIn.Result)
{
// Do something
}
}
public async Task<bool> Login()
{
try
{
var e = await lac.InitializeAsync(Scopes);
if (e.Status == LiveConnectSessionStatus.Connected)
{
client = new LiveConnectClient(e.Session);
// do some stuff now that we are connected
return true;
}
else
{
// not connected so do something
return false;
}
}
catch (Exception ex)
{
return false;
}
}
基本上,当用户单击一个按钮时,它会将他们登录到他们的 Windows 实时帐户,并且在发生这种情况时会出现一条消息,要求用户请稍候。
您可以猜到 UI 锁定,因此消息永远不会出现。如何更改它以使 UI 不锁定?
我在使用事件之前使用 windows phone 7.5 完成了此操作,因为 sdk 没有使用异步,并且效果很好。这是否需要混合使用异步和事件?