第19章编写具有多个线程运行的应用程序.pptVIP

第19章编写具有多个线程运行的应用程序.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分析: 由于任务发生异常、被取消或者正常完成,均会触发RunWorkerCompleted事件,因此在该事件的处理过程中,需要区分三种情况:如果出现异常,则RunWorkerCompletedEventArgs类型的参数e的Error属性包含了异常的信息;如果被取消,则e的Cancelled属性被设置为True;如果正常完成,则e的Result属性包含了计算结果。根据不同的情况分别设置lblMessage控件的Text属性以完成结果显示。 运行结果 19.3.2 Timer组件 该Timer组件则位于System.Timers 命名空间,称为服务器计时器。 位于工具箱组件选项卡中的Time组件是一个实现按用户定义的时间间隔引发事件的计时器,位于System.Windows.Forms命名空间,是一个专为单线程设计的计时器,称为Windows计时器。 二者区别 服务器计时器是为在多线程环境下与辅助线程一起使用而设计的。由于二者使用不同的体系结构,因此基于服务器的计时器可能比 Windows 计时器精确得多。 服务器计时器可以在线程之间移动来处理引发的事件。 创建 Timer 组件的实例 两种方法: 一是将其添加到工具箱中; 二是通过代码创建Timer组件的实例。 第一种方法 在【工具】菜单上单击【选择工具箱项】,在打开的【选择工具箱项】窗口中再单击【.NET Framework组件】选项卡, ,勾选【System.Timers】命名空间中的【Timer】复选框。 之后,直接将Timer图标拖动到窗体上,即可为该窗体添加一个服务器计时器。 第二种方法 用编程方式创建 Timer组件的实例,代码如下。 1 Dim myTimer As New System.Timers.Timer( ) 2 myTimer.Interval = 3000 3 myTimer.Enabled = True 常用属性 属性 说明 Interval 设置计时器间隔,单位为毫秒 Enabled 只是是否启用计时器,以定义的时间间隔触发事件 AutoReset 指示计时器是否在启动后重新启动。当AutoReset设置为false时,Timer 只在第一个 Interval 过后引发一次Elapsed事件。若要保持以Interval时间间隔引发Elapsed事件,请将 AutoReset 设置为 true。 唯一事件 事件 说明 Elapsed 间隔已过时触发该事件。该事件在ThreadPool线程上引发。如果Elapsed事件的处理时间比Interval长,在另一个 ThreadPool线程上将会再次引发此事件。因此,该事件的处理程序应当是可重入的 常用方法 方法 说明 Start 通过将Enabled设置为true开始引发Elapsed事件 Stop 通过将Enabled设置为false停止引发Elapsed事件 Close 释放由Timer占用的资源。 示例:窗体渐变退出 界面设计: 在窗体加载的时候初始化计时器。 下面代码是窗体的Load事件过程,完成计时器的初始化。 1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 2 初始化计时器 3 Timer1.Interval = 100 4 Timer1.AutoReset = True 5 Timer1.Enabled = False 6 End Sub 单击【渐变退出】按钮后,启动计时器。 下面代码是【渐变退出】按钮的Click事件过程,启动计时器。 1 Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click 2 btnClose.Enabled = False 将窗体关闭按钮设置为不可用,防治在渐变过程中用户再次单击【关闭】按钮。 3 Timer1.Start() 启动TIMER开始计时 4 End Sub 5 计时器启动后,每个100毫秒便触发Elapsed事件,该事件的处理过程如下 6 Private Sub Timer1_Elapsed(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEven

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档