Windows phone 7 Live SDK Windows Phone 7是否已在UI线程中完成回调?

Windows phone 7 Live SDK Windows Phone 7是否已在UI线程中完成回调?,windows-phone-7,Windows Phone 7,正在UI线程中调用函数OnGetCompleted,UI没有响应。据我所知,我认为这些回调将在不同的线程中工作,我们必须使用dispatcher将其发布到UI线程。有什么想法吗?救命啊 调用GetAsync很可能使用后台线程执行实际的获取,但它试图通过在原始线程上下文中调用已完成的回调来帮助您,这样您就不必使用调度程序 你为什么要睡(10000)个觉?回电话说“嘿,我做完了”。此时,如果需要,您应该更新UI。如果您需要进行花费大量时间的进一步处理,请生成一个后台线程、线程池任务或使用另一个异步调

正在UI线程中调用函数OnGetCompleted,UI没有响应。据我所知,我认为这些回调将在不同的线程中工作,我们必须使用dispatcher将其发布到UI线程。有什么想法吗?救命啊

调用
GetAsync
很可能使用后台线程执行实际的获取,但它试图通过在原始线程上下文中调用已完成的回调来帮助您,这样您就不必使用调度程序

你为什么要睡(10000)个觉?回电话说“嘿,我做完了”。此时,如果需要,您应该更新UI。如果您需要进行花费大量时间的进一步处理,请生成一个后台线程、线程池任务或使用另一个异步调用和另一个回调

public class SyncHelper
{
    private LiveConnectClient client;
    public event EventHandler SyncStarted;
    public event EventHandler SyncCompleted;

    public SyncHelper(LiveConnectClient client)
    {
        this.client = client;
    }

    public void TrySync()
    {
        Debug.WriteLine("Beginning sync");
        OnSyncStarted();
        client.GetCompleted += OnGetCompleted;
        client.GetAsync("me/skydrive/files");
    }

    private void OnGetCompleted(object sender, LiveOperationCompletedEventArgs e)
    {
        Thread.Sleep(10000);
        Debug.WriteLine("Get Completed");
        client.GetCompleted -= OnGetCompleted;
        OnSyncCompleted();
        Debug.WriteLine("Sync completed");
    }

    private void OnSyncStarted()
    {
        if (SyncStarted != null)
            SyncStarted(this, new EventArgs());
    }

    private void OnSyncCompleted()
    {
        if (SyncCompleted != null)
            SyncCompleted(this, new EventArgs());
    }
}