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非常适合从事单一的,异步的,并在后台运行的长时间的任务。

转载于:https://www.cnblogs.com/mxy1028/archive/2011/06/07/2074647.html

silverlight 4常用的多线程技术相关推荐

  1. Android多线程和常用异步处理技术

    Android多线程和常用异步处理技术 一.Android多线程概述 1.概述:表示一个程序的多段语句同时执行,但并不等于多次启动一个程序,操作系统也不会把每个线程当作独立的进程来对待. 2.线程和进 ...

  2. Silverlight 4常用StringFormat格式总结

    在Silverlight项目中,经常会根据需求的不同,提供不同的字符格式到客户端.这篇文章总结了目前Silverlight 4常用StringFormat绑定字符格式,方便大家在以后的开发中调用参考. ...

  3. 计算机网络多线程通信,多线程技术的PLC与PC的通讯方式

    基于多线程技术的PLC与PC的通讯方式 1.系统构成 推进系统中,PC机选用工控计算机.它是整个控制系统的核心,是上位机.其主要利用良好的图形用户界面,显示从PLC接收的开关量和控制手柄的位置,进行一 ...

  4. mfc多线程编程实例_多线程技术的PLC与PC的通讯方式

    点击箭头处"工业之家",选择"关注公众号"! 基于多线程技术的PLC与PC的通讯方式 1.系统构成  推进系统中,PC机选用工控计算机.它是整个控制系统的核心, ...

  5. 基于多线程技术和自定义消息编程实现Windows 9x异步串行通信

    基于多线程技术和自定义消息编程实现Windows 9x异步串行通信 张志明 李蓉艳 王 磊 摘  要  分析了基于Windows 95/98平台上的异步串行通信程序开发方法,并结合开发实践,用C++B ...

  6. 3.4 常用类库-多线程

    多线程 1.线程与进程 2.同步与异步 3.并发与并行 4.继承Thread类 4.1 Thread在程序中的使用 5.Runnable接口 6.Callable接口 7.线程有关操作 7.1 设置和 ...

  7. Java多线程技术解析

    Java多线程技术 1.多线程的概述 1.1.进程与线程 进程是操作系统进行资源分配和调度的一个独立单位,它是一个内存中运行的应用程序的载体,每个进程都有一个独立的内存空间.进程一般由程序,数据集合和 ...

  8. java游戏 动态录入弹球_动态弹球的实现 加入了多线程技术--javaSE游戏准备工作...

    任务描述:实现了动态弹球的功能,对于有弹球功能的SE游戏奠定了基础. package 运用线程技术的小球; import java.awt.*; import java.awt.event.*; im ...

  9. 多线程技术(全面介绍)

    目录 1.线程与进程 2.什么是多线程 3.多线程的实现 4.设置和获取线程名称 5.线程的休眠:正在执行的线程休眠(暂时停止执行) 6.线程阻塞 7.线程中断 8.守护线程 9.线程不安全问题 10 ...

  10. HTTP服务器端常用推送技术

    服务器端推送技术描述 不论是传统的HTTP请求-响应式的通信模式, 还是异步的AJAX式请求, 服务器端始终处于被动的应答状态, 只有在客户端发出请求的情况下, 服务器端才会返回响应. 这种通信模式被 ...

最新文章

  1. XenApp / XenDesktop 7.6 初体验五 KEYWORDS
  2. Java内存使用量测试 看看我们天天在用的JVM到底浪费了多少内存资源
  3. Excel生成报表之解决方案--设置单个单元格格式
  4. concat效率 mysql_MySQL统计函数GROUP_CONCAT使用陷阱分析
  5. WebStorm——最智能的Javascript IDE
  6. ue4渲染速度太慢_技术汇丨如何在UE4中实现最佳性能和高质量视觉效果
  7. WebService传输DataSet压缩与解压缩
  8. 计算机用户组权限管理,配置Windows server 用户和组权限实验详解
  9. Http client to POST using multipart/form-data
  10. 页面定时跳转的js和php的代码实现和页面定时刷新
  11. 50 Most Frequently Used UNIX / Linux Commands (With Examples)
  12. 2017年第八届 蓝桥杯 java B组
  13. Tk-Mybatis(通用mybatis)简单使用
  14. 软件工程 - 个人博客系统 - 可行性分析与需求分析文档
  15. MD5加密算法特点及简单实现(Java)
  16. c++中虚基类表和虚函数表的布局
  17. 不是python中文件操作的相关函数是_以下选项中,不是Python中文件操作的相关函数是:...
  18. 【论文笔记】Semantic Parsing on Freebase from Question-Answer Pairs
  19. masonry布局出现 'couldn't find a common superview for...报错解决办法
  20. Android 手把手教你实现百度身份证识别

热门文章

  1. 日志框架简述、slf4j 日志框架概述,slf4j + log4j 1.X 日志组合
  2. IDEA 打包、Spring Boot Maven plugin 打包可执行 Jar 程序
  3. php中的try语句,PHP Try-catch 语句使用技巧
  4. 阶段3 1.Mybatis_09.Mybatis的多表操作_3 完成account的一对一操作-通过写account的子类方式查询...
  5. [CF321E] Ciel and Gondolas
  6. ethereum(以太坊)(二)--合约中属性和行为的访问权限
  7. Android Studio 创建aar包与引用
  8. jQuery(非插件)制作商城放大镜效果
  9. 清理SharePoint 2010的SQL Server 2008 R2日志数据库的方法
  10. Mysql ORDER BY用法的一点理解