0

我在使用 msdn 的演示时遇到问题

演示

关于方法updateUserName

public static async Task updateUserName(TextBlock userName, Boolean signIn)
        {
            try
            {
                // Open Live Connect SDK client.
                LiveAuthClient LCAuth = new LiveAuthClient();
                LiveLoginResult LCLoginResult = await LCAuth.InitializeAsync();
                try
                {
                    //this is never reached
                    LiveLoginResult loginResult = null;
                    if (signIn)
                    ......

代码挂在 htInitialuzeAsync()方法上,从不进入 try 语句。使用过实时 SDK 的人可以告诉我可能出了什么问题吗?该代码是来自演示的直接复制粘贴,并且实时 SDK 是通过 NuGet 在 VS2012 上安装的。

4

2 回答 2

1

我预测您正在调用Task.WaitTask<T>.Result调用堆栈更远的地方。正如我在我的博客上所描述的,您正在导致死锁,因为它await正试图在 UI 线程上恢复。

正确的解决方案是使用await“一路”,这是我在文章中描述的最佳实践之一。如果您认为自己“无法”使用await,请查看我的async/OOP 博客系列,其中描述了代码的各种代码模式async,最值得注意的是构造函数属性

于 2013-09-19T17:41:04.007 回答
0

似乎您必须将您的应用程序与商店关联才能使用此功能,否则它会挂起。关联后,一切都开始工作了。

于 2013-09-19T19:46:30.263 回答