在Silverlight客户端对象模型中使用ExecuteQuery()时发生异常

|| 我一直在使用客户端对象模型为SharePoint开发Silverlight用户控件。这是编码
            InitializeComponent();
            ctx = ClientContext.Current;
            Web web = ctx.Web;
            ctx.Load(web, oweb => oweb.Title);
            ctx.Load(web, oweb => oweb.Lists);
            ctx.ExecuteQuery();
我听说SIlverlight支持ExecuteQuery()和ExecuteQueryAsync()方法。但是我收到这样的异常消息,该方法或属性被调用可能会阻塞UI线程,因此不允许。请使用后台线程来调用该方法或属性,例如,使用System.Threading。 ThreadPool.QueueUserWorkItem方法调用该方法或属性。\“ 谁能告诉我我要去哪里错了以及如何使用ExecuteQuery()方法?谢谢。     
已邀请:
我可能不在这里,但是据我了解,ExecuteQuery()要求您创建一个线程,以便在调用该方法时不会调用UI线程的停止。使用ExecuteQueryAsync的原因恰好是:ExecuteQueryAsync在单独的线程上执行操作,然后您仅使用dispather回调到UI线程:
ctx.ExecuteQueryAsync(onQuerySucceeded, onQueryFailed);
...
 private void onQuerySucceeded(object sender, ClientRequestSucceededEventArgs args)
 {
 this.Dispatcher.BeginInvoke((Action)(() =>
            {
doStuff();
}));
}
    

要回复问题请先登录注册