服务器计时器、Windows 计时器和线程计时器

在 Visual Studio 和 .NET Framework 中有三种计时器控件:基于服务器的计时器(可以在“工具箱”的“组件”选项卡上看到)、基于 Windows 的标准计时器(可以在“工具箱”的“Windows 窗体”选项卡上看到)和线程计时器(只能以编程方式使用)。基于 Windows 的计时器从 Visual Basic 1.0 版起就存在于该产品中,并且基本上未做改动。该计时器针对在 Windows 窗体应用程序中使用而进行了优化。基于服务器的计时器是传统的计时器为了在服务器环境上运行而优化后的更新版本。线程计时器是一种简单的、轻量级计时器,它使用回调方法而不是使用事件,并由线程池线程提供支持。

在 Win32 体系结构中有两种类型的线程:UI 线程和辅助线程。UI 线程绝大多数时间处于空闲状态,等待消息循环中的消息到来。一旦接收到消息,它们就进行处理并等待下一个消息到来。另外,辅助线程用来执行后台处理而且不使用消息循环。Windows 计时器和基于服务器的计时器在运行时都使用 Interval 属性。线程计时器的时间间隔在 Timer 构造函数中设置。计时器的设计目的各不相同,它们的线程处理明确地指出了这一点:

  • Windows 计时器是为单线程环境设计的,其中,UI 线程用于执行处理。Windows 计时器的精度限定为 55 毫秒。这些传统计时器要求用户代码有一个可用的 UI 消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程。对于 COM 组件来说,这样会降低性能。

  • 基于服务器的计时器是为在多线程环境下与辅助线程一起使用而设计的。由于它们使用不同的体系结构,因此基于服务器的计时器可能比 Windows 计时器精确得多。服务器计时器可以在线程之间移动来处理引发的事件。

  • 对消息不在线程上发送的方案中,线程计时器是非常有用的。例如,基于 Windows 的计时器依赖于操作系统计时器的支持,如果不在线程上发送消息,与计时器相关的事件将不会发生。在这种情况下,线程计时器就非常有用。

Windows 计时器位于 System.Windows.Forms 命名空间中,服务器计时器 System.Timers 命名空间中,线程计时器位于 System.Threading 命名空间中。

转载于:https://www.cnblogs.com/challengesoflife/archive/2011/10/08/2201963.html

asp.net 中的几种计时器相关推荐

  1. ASP.net中的几种分页方法

    1.利用DataGrid内置的分页功能   在DataGrid控件的属性里加入以下语句 AllowPaging="True" PageSize="5" Page ...

  2. Asp.net中的两种刷新父窗体方法

    第一种: btn_export.Attributes.Add("onclick","javascript:showModalDialog('listprintselect ...

  3. Paging of Large Resultsets in ASP.NET中介绍的SET ROWCOUNT方式存储过程的问题

    Paging of Large Resultsets in ASP.NET中对几种常见的分页方式做了比较感觉写得不错,前段时间因为要做asp.net分页,就想到了这篇文章,但经过测试后发现不少问题,虽 ...

  4. Asp.net中的时区

    首先,日期时间转换在 Asp.net 中的几种应用: 1. <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= ...

  5. ASP.Net中MD5和SHA1加密的几种方法

    首先简单介绍一下MD5和SHA1: MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Scie ...

  6. Asp.Net中几种标记符号解释及用法

    Asp.Net中几种标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 1.< %#... %>: 是在 ...

  7. C#强化系列文章三:实验分析C#中三种计时器使用异同点

    C#中提供了三种类型的计时器: 1.基于 Windows 的标准计时器(System.Windows.Forms.Timer) 2.基于服务器的计时器(System.Timers.Timer) 3.线 ...

  8. Asp.Net中替代Eval的两种方式

    在asp.net中的数据绑定中,我们经常会用到Eval,不过大家都知道Eval绑定是通过反射来实现的, 而反射势必会对性能造成一定的影响.不过有两种替代的方式来实现绑定数据,对性能略有提高. 1 当数 ...

  9. 一、目前在ASP.NET中页面传值共有这么几种方式:

    一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交,    <form action= "target.aspx" method = "post&q ...

最新文章

  1. mysql 数据库的导入和导出
  2. Go语言学习笔记 - PART11 - 面向对象
  3. Bitcoin Cash 交易签名与构造
  4. Xamarin.Forms单元控件Cell
  5. tinyMce在线编辑器内JavaScript实现按Ctrl+S无刷新保存
  6. mysql创建一个表用来快速查询表_mysql数据库的创建表格、查询(多表查询)
  7. 【详细解读】CSS渐变用法——Web前端系列学习笔记
  8. java 正则表达式 提取ip_java正则表达式提取地址中的ip和端口号
  9. oracle用户名密码过期引起的网站后台无法登录
  10. python画图怎么调色_Python气象数据处理与绘图(19):如何使用NCL色板(调色盘思路相同)...
  11. iOS UIButton没了交互事件
  12. 小新pro13睡眠后无法唤醒_电脑休眠后,就无法唤醒了?怎么办?快速教你解决这个问题...
  13. 三星s9 android p内测,三星开启国行Galaxy S9/S9+安卓9.0内测,限额一万名!
  14. Camera和Image sensor技术基础笔记(3) -- 色彩空间,CFA,bayer数据处理
  15. 2018铁三测评题write以及一些想送给你们的话
  16. Fiddler+手机模拟器+java采集抖音评论数据
  17. idea 编译时,报“编码GBK的不可映射字符”
  18. 统计给定的n个数中,负数,零和正数的个数。
  19. MJ12bot 蜘蛛爬虫 屏蔽垃圾SEO蜘蛛
  20. SpringBoot配置Mybatis多数据源

热门文章

  1. 点餐系统的设计(二)---数据管理模块代码实现
  2. 【Node】—系统模块
  3. html表单左侧文字对齐,CSS图标文字对齐和表单输入框文字对齐兼容
  4. 为什么有些WIFI不能用万能钥匙搜索到?怎么才能破解邻居家的WIFI密码?
  5. 在經歷了8個Beta版和1個RC版後
  6. 公司能否开除长期请病假,无法正常工作的员工?
  7. 如何用MobaXterm查看日志信息以及xml
  8. 最短Hamilton路径
  9. Error opening data file Tesseract-OCR\tessdata/eng.traineddata问题解决
  10. sql 触发器嵌套条件_SQL Server中的嵌套触发器