所以最终,我的解决方案是处理异步twitAuth.InitializeTwitterAsync()方法内的导航。为了使导航工作,我必须在app.xaml.cs中创建一个静态框架属性,我可以在我的自定义类中使用它来进行导航。看到这个链接 WinRt页面navigaiton 。
你不能。 Asynchronouse API只是异步运行,如果你试图强制你的线程等待结果 - 你经常会遇到死锁,因为API本身经常需要在你阻塞的线程上运行某些东西。你不应该试图打击它,而是想想你想要解决的实际问题是什么。
在您的情况下,您应该更改方法的签名
public async void InitializeTwitterAsnc()
至
public async Task InitializeTwitterAsnc()
这样它可以等待,然后在这里等待它:
private async Task StartTwitterLogin(object sender, RoutedEventArgs e) { // start the twitter authorization TwitterAuth twitAuth = new TwitterAuth(); await twitAuth.InitializeTwitterAsnc(); this.Frame.Navigate(typeof (HomePage)); }