您现在的位置是:首页 >

thread是什么 如何在Worker thread中更新UI

火烧 2021-05-25 19:43:53 1059
如何在Worker thread中更新UI   Silverlight 中调用服务全部采用异步方式 在调用 WCF 时似乎没有什么问题   但是如果要用一个 We Reque t 对象去向某个页面 P

如何在Worker thread中更新UI  

  Silverlight 中调用服务全部采用异步方式 在调用 WCF 时似乎没有什么问题

  但是如果要用一个 WebRequest 对象去向某个页面 Post 一些内容 然后获得回应

  就会发现在 Worker thread 中将无法更新 UI

  在 Windows Forms 里 可以用 Control Invoke 但是 Silverlight 没有这个

  Silverlight 中有更好的办法 DependencyObject 类有一个属性 Dispatcher 可以通过它来更新相关 UI 对象

  比如可以这样写

  (假设是在上传一个文件后更新文件列表)          private void UpdateFileList(int newFileId)        {           //        }        private delegate void UpdateFileListDelegate(int newFileId);        // Worker thread        void ResponseReady(IAsyncResult asyncResult)        {           //           // 更新文件列表           listFiles Dispatcher BeginInvoke(              new UpdateFileListDelegate(UpdateListFile) newFileId           );        }

  注意这个 BeginInvoke 方法很先进 他可以接受任何的 delegate 还能传递任意数目的参数过去

thread是什么 如何在Worker thread中更新UI
lishixinzhi/Article/program/net/201311/13641  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码