- 浏览: 84422 次
文章分类
- 全部博客 (136)
- 我的技术资料收集 (98)
- 具体技术 (1)
- 的技术资料收集 (4)
- All Articles (1)
- 机器学习 Machine Learning (1)
- 网络编程 (1)
- java (2)
- ava (1)
- 零散技术 (1)
- C# (3)
- 技术资料收集 (1)
- CQRS (1)
- 数据库技术(MS SQL) (1)
- .Net微观世界 (1)
- Oracle SQL学习之路 (1)
- C/C++ (1)
- JS/JQ (1)
- Js封装的插件/实例/方法 (2)
- 敏捷个人 (2)
- Javascript (1)
- 程序设计---设计模式 (1)
- Bug (1)
- 未知分类 (1)
- 程序设计 (1)
- Sharepoint (1)
- Computer Graphic (1)
- IT产品 (1)
- [06]JS/jQuery (1)
- [07]Web开发 (1)
- .NET Solution (1)
- Android (3)
- 机器学习 (1)
- 系统框架设计 (1)
- Others (1)
- 算法 (1)
- 基于Oracle Logminer数据同步 (1)
- 网页设计 (1)
- 原创翻译 (1)
- EXTJS (1)
- Jqgrid (1)
- 云计算 (1)
最新评论
FCL中提供了三个定时器,而对于大多数程序员来说,他们不太清楚这三个定时器之间的区别。
下面我们对这三个定时器进行分析:
System.Threading的Timer类,这个定时器使我们最常用的定时器,当我们希望在另一个线程上定时执行后台任务时,这个定时器是最好的选择。
System.Windows.Forms的Timer类 构建一个该类的实例可以告诉Windows将定时器与调用线程关联。随着定时器的触发,Windows将一个定时器消息(WM_TIMER)插入到线程的消息队列中。调用线程必须执行一个消息泵(message pump),从而提取消息,并将他们分派到期望的回调方法中。注意,所有这些工作都是由一个线程完成的----设置定时器的线程保证是执行回调方法的线程。这同样意味着我们的定时器方法不能被多个线程同时执行。
System.Timers的Timer类 该定时器基本上是对System.Threading的Timer类的包装,当定时器时间到期后,将导致CLR将事件加入线程池的队列中。Component类允许将这些定时器对象放置在Microsoft Visual Studio设计界面上。另外,System.Timers.Timer类的成员也有点不同。这个类在数年前就被添加到FCL中了,而那时Microsoft仍然在对线程处理和定时器材质进行分类。这个类或许被移除,以便于每个人都可以使用System.Threading的Timer类。实际上,我们从来不使用System.Timer.Timer类,而且我还劝大家不要使用这个类,除非大家这的希望在设计界面上使用定时器。
下面是一个System.Threading的Timer类例子,这个类是我们经常使用的:
using System;
using System.Threading;
namespace TestTimer
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("主线程:正在启动Timer");
//ComputeBoundOp是被执行的函数
Timer t = new Timer(ComputeBoundOp, 5, 0, 2000);
Console.WriteLine("主线程: 正在工作。。。");
Thread.Sleep(10000); //模拟工作(10秒钟)
t.Dispose(); //取消定时器
}
/// <summary>
/// 该方法的签名必须与TimerCallback委托类型匹配
/// </summary>
/// <param name="state"></param>
private static void ComputeBoundOp(Object state)
{
//该方法由线程池中的线程执行
Console.WriteLine("在ComputeBoundOp中: state={0}", state);
Thread.Sleep(1000); //模拟其他工作(1秒钟)
//在这个方法返回后,线程就回到线程池中,然后等待执行另一个任务
}
}
}
当Timer对象被执行垃圾收集时,CLR就会取消定时器,以便定时器不再继续触发,因此,使用Timer对象时,一定要确保一个变量来引用Timer对象,从而保持Timer对象继续存活,否则回调方法就不会再被调用。
Timer t = new Timer(ComputeBoundOp, 5, 0, 2000);这段代码中,ComputeBoundOp是线程回调的方法,5是构造器的state参数,它允许我们将状态数据传递给回调方法,如果没有状态数据可传递,可以传递null。0是dueTime参数,dueTime参数可以告诉CLR在第一次调用回调方法时需要等待多少毫秒。在这里设置为0,表示希望回调方法立即被调用。2000是period参数,它表示回调方法执行的间隔时间,这里我们设置的是2000毫秒.
更多原创内容,可以到我的小站进行阅读,欢迎拍砖。
发表评论
-
C#WebBrowser控件使用教程与技巧收集--苏飞收集 - sufeinet
2013-06-28 12:07 1073原帖地址:http://www.cnblogs.com/suf ... -
我要喷一个自认为很垃圾的网站架构 - 老赵【苏州】
2013-06-28 12:01 1134原帖地址:http://www.cnblogs.com/lao ... -
[翻译] Oracle Database 12c 新特性Multitenant - Cheney Shue
2013-06-28 11:43 624原帖地址:http://www.cnblogs.com/ese ... -
memcahd 命令操作详解 - 阿正-WEB
2013-06-28 11:37 475原帖地址:http://www.cnblogs.com/azh ... -
面向过程的代码符合大众的思维方式吗? - 史蒂芬.王
2013-06-27 10:28 597原帖地址:http://www.cnblogs.com/ste ... -
面向过程的代码符合大众的思维方式吗? - 史蒂芬.王
2013-06-27 10:28 560原帖地址:http://www.cnblogs.com/ste ... -
RPG游戏之组队测试 - zthua
2013-06-27 10:22 560原帖地址:http://www.cnblogs.com/zth ... -
IT人们给个建议 - SOUTHER
2013-06-26 14:06 526原帖地址:http://www.cnblogs.com/sou ... -
Java向前引用容易出错的地方 - 银河使者
2013-06-26 14:00 497原帖地址:http://www.cnblogs.com/nok ... -
使用Func<T1, T2, TResult> 委托返回匿名对象 - 灰身
2013-06-26 13:54 801原帖地址:http://www.cnblo ... -
【web前端面试题整理03】来看一点CSS相关的吧 - 叶小钗
2013-06-25 10:45 788原帖地址:http://www.cnblogs.com/yex ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 10:27 624原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 10:21 568原帖地址:http://www.cnblo ... -
CentOS下Mysql安装教程 - 小学徒V
2013-06-23 15:24 612原帖地址:http://www.cnblogs.com/xia ... -
vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化) - skyme
2013-06-23 15:18 840原帖地址:http://www.cnblogs.com/sky ... -
之前专门为IE6、7开发的网站如何迁移到IE10及可能遇到的问题和相应解决方案汇总 - 海之澜
2013-06-23 15:12 956原帖地址:http://www.cnblogs.com/wuz ... -
Android学习笔记--解析XML之SAX - 承香墨影
2013-06-23 15:01 413原帖地址:http://www.cnblo ... -
SQL Server 性能优化之——T-SQL TVF和标量函数
2013-06-19 09:32 676原帖地址:http://www.cnblogs.com/Boy ... -
Nginx学习笔记(二) Nginx--connection&request
2013-06-19 09:26 671原帖地址:http://www.cnblogs.com/cod ... -
从郭美美霸气侧漏看项目管理之项目经理防身术
2013-06-19 09:20 504原帖地址:http://www.cnblogs.com/had ...
相关推荐
2. **WagweiWebSrv**:这个可能是Web服务相关的代码,使用FCL中的System.Web命名空间,包含了ASP.NET的核心类,如HttpApplication、HttpHandler和HttpModule等,允许开发者创建和托管Web服务。开发者可以利用这些类...
在这款名为"RENESAS_FCL_RH850_T01_V2.12.zip"的压缩包中,包含的是Renesas RH850系列微控制器的FCL(Flash Controller Library)Cflash自编程代码,版本为V2.12。本文将深入解析这一代码库的重要知识点。 1. **RH...
"FCL (Free Class Library)" 是一个为 Visual C++ 开发者设计的高级接口库,它提供了许多方便的功能,旨在简化编程工作,提高开发效率。FCL 主要关注于面向对象编程,面向接口的设计,以及一些常用的实用工具类,...
fcl flexible collision library 碰撞检测库源码
标题中的“fcl_fcl_.fcl打开软件_Free!_Vc_smallertu4_”表明这是一个关于FCL(Free Class Library)的项目,可能是FCL库的一个版本或者与之相关的开发工具。FCL是一个针对VC++(Visual C++)的高级界面类库,它提供...
ccd 库源码,fcl 碰撞检测库的依赖库
这个库可能是用于处理某种特定功能或问题的,但由于描述中没有具体说明其用途,我们只能通过名字推测可能与FCL(Flexible Configuration Language)或者类似的配置管理有关。FCL通常指的是用于定义和处理复杂系统...
在这个模型中,我们可以期待看到电力系统、FCL 设备以及并联谐振电路的详细结构和参数设置。通过仿真运行,可以观察到在发生短路时 FCL 如何控制电流,以及并联谐振如何影响系统的响应。 综合以上信息,这个项目...
这个测试程序可能是为了验证FCL库的功能,或者提供给开发者作为参考,以便他们在自己的项目中集成和使用FCL库。 在开发过程中,首先需要设置CS+的工作环境,导入或创建一个新项目,并选择R7F7015873作为目标芯片。...
FCL(Free Class Library)是一个跨平台的类库,这意味着它可以在多个操作系统上运行,包括但不限于Windows、Linux和Mac OS。这个库的核心设计理念是免费、开源和易于使用,因此对于那些希望在不同平台上实现一致的...
VC 高级界面类库FCL(Free Class Library),自由类库(Free Class Library 简称FCL),关于VC FCL高级界面库的几点说明: 1、本套类库目前还不能算是正式版,就连名字也是临时取的。发布它的目的是希望能和有着共同...
今天我们将深入探讨一个名为FCL(Flexible Collision Library)的开源工具箱,它是碰撞检测领域中的一个重要工具。 FCL,全称为“Flexible Collision Library”,由潘佳等人开发,是一个用C++编写的高效且可扩展的...
【标题】"FCL.rar_Limiter_current limiter_fault current_fault limiter_fcl" 提供的信息表明,这是一个关于电力系统中故障电流限制器(Fault Current Limiter, FCL)的MATLAB Simulink模型。FCL是一种重要的电力...
总的来说,基于MATLAB环境下的FCL限流效果仿真分析是一个综合性的研究任务,它涵盖了电力系统建模、故障条件设定、FCL原理应用、系统性能评估等多个环节。通过这样的仿真,我们可以深入理解FCL的工作机制,为实际...
您现在可以通过这个 git 存储库安装它: npm install git+http://github.com/cvette/FCL-Parser.git###Usage 解析器可以直接在 JavaScript 中使用,也可以通过命令行界面使用。 ####JavaScript 解析指定的输入并...
显示屏刷新:调节显示屏刷新的hz数,设置的越快效果越平稳,但是带的面积也会变小,所以这个要根据所控制的屏幕的实际大小,实验着调节。刷新调的越快也会使特技效果变慢。刷新调节过快导致黑屏,只要调节慢一些再...
基于MATLAB环境下的FCL限流效果仿真分析.pdf
标题中的“行业分类-电子-FCL串联电容MOV过电流触发GAP保护仿真装置的说明分析”揭示了本文档将探讨的主题,主要集中在电子行业中,特别是关于FCL(快速电流限制)系统,其中涉及到串联电容、MOV(金属氧化物压敏...
标题中的“FCL线路电流监视告警仿真装置”是指一种用于电力系统中的故障电流限制(Fault Current Limiter, FCL)技术的设备,它能够实时监控线路电流,并在检测到异常电流状况时触发告警,以保护电网免受过电流损害...