zoukankan      html  css  js  c++  java
  • silverlight 4常用的多线程技术

    WebClient或HttpRequest等Silverlight访问服务端的手段,仅提供异步方法,所以,了解Silverlight端的多线程技术,显得十分重要。

    1. 跨UI线程

    首先,我们要了解的是Dispatcher,Winform多线程编程时代,很多人肯定遇到过,当子线程访问UI线程的时候,MS处于规则考虑,会拒绝访问。那我们必须基于Control.Invoke、SynchronizationContext或BackgroudWorker来调用。

    现在,Silverlight时代,怎么办呢?

    这就不卖关子了,用 Dispatcher.BeginInvoke  就可以了。当然,要Dispatcher实现原理,还是建议,看一些大虾的文章。

    2. 多个线程的同步

    跨UI,多线程的问题解决了。接下来,多个线程的同步问题又出来了。可以用WaitHandle。

    3. 后台线程定时器

    DispatchTimer第一次亮相是在Silverlight(WPF)中作为一个后台线程计时器。与原System.Threading.Timer相比,不同之处在于DispatchTimer是真正的在后台线程中独立执行的,而定时器Timer仍然在UI线程中执行,每隔一个指定的时间接管UI线程的控制权。总体来看,DispatchTimer主要适合于调度任务的情况。在这种情况下,我们可以根据实际要求设置等待时间

    4.BackgroundWorker 一直很好用

    System.ComponentModel.BackgroundWorker首次出现在NET
    2.0中,用于简化Windows窗体应用程序多线程交互相关的编码过程。现在,它也可用于Silverlight环境中。在后台实现中,BackgroundWorker使用了Dispatcher组件,并把所有多线程相关的复杂内容封装在一个黑盒子中,为您提供最易于使用和现成的解决方案。整体来说,BackgroundWorker非常适合从事单一的,异步的,并在后台运行的长时间的任务。

  • 相关阅读:
    树莓派写Python程序输入不了#
    树莓派系统安装、HDMI显示
    网络七层协议
    TCP协议中的三次握手和四次挥手(图解)(转载http://blog.csdn.net/whuslei/article/details/6667471)
    英语积累
    读《淘宝技术这十年》--笔记
    关于imx6核心板qt系统U盘挂载
    《赢在测试2》-- 推荐的阅读书籍
    三月,关于团队管理的重要性
    自动化测试及工具的一点理解
  • 原文地址:https://www.cnblogs.com/mxy1028/p/2074647.html
Copyright © 2011-2022 走看看