多线程(二).pptVIP

  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文档。上传文档
查看更多
多线程(二)

第14章 多线程 (二) 上次回顾 多线程概述 Thread类 (重点) 线程池 本讲目标 Timer类(重点) 线程访问控件 线程同步 Timer类线程时钟 Timer类将需要调用的方法加入队列等待被周期性执行 Timer类包含在System.Threading命名空间 Timer类通过系统提供的线程池线程,在每次计时器期满时运行计时器委托 在退出应用程序之前需要终止计时器 时钟控件和线程时钟的区别 名称空间不同 时钟控件在System.Windows.Forms命名空间 线程时钟在System.Threading命名空间 线程执行不同 时钟控件不能在单独的线程上执行,而线程时钟可以 精度不同 时钟控件简单,适合用于周期性的更新用户界面 高精度的计时器,则应该使用线程时钟 System.Threading.Timer的用法 System.Windows.Forms.Timer类的使用 线程访问界面控件 记住:不要直接从工作线程内部访问或更新控件 如果需要在工作线程内部更新控件,应该使用Control.Invoke方法,用委托来执行控件 在.NET Compact Framework中,Control.Invoke只支持EventHandler委托 ThreadPool.QueueUserWorkItem的WaitCallback委托 也可以执行控件 线程同步 Monitor类 object function1Protector = new object(); void Function1() { Monitor.Enter(function1Protector); // ... 执行循环操作 Monitor.Enter(function1Protector); } 总结 各种Timer类作用类似,细节上有区别 工作线程不要直接访问控件,应该用委托访问 多个线程同时访问的资源,应该及时的保护起来 课后任务 完成学习手册上的详细上机试验 完成老师布置的课后习题 3G方向Windows Mobile课程 某某某课程 教师: 办公室: EMAIL: // 创建时钟,每100毫秒执行一次Func System.Threading.Timer threadingTimer = new System.Threading.Timer(new TimerCallback( Func), null, 0, 100); // 停止时钟,释放资源 threadingTimer.Dispose(); threadingTimer = null; // 时钟控件100毫秒执行周期 timer1.Interval = 100; // 启动时钟控件 timer1.Enabled = true; 演示示例:如何使用时钟控件 在多线程访问共享数据的情况下,必须同步对数据的访问 思考: 一个线程简单地递增变量,另一个线程简单地递减变量。每个线程内部循环1000~1000000次,当两个工作线程执行完成时,变量的值应该始终等于0 包含共享数据,可以使用Monitor和Mutex类。Monitor和Mutex都会确保临界区每次只能由一个线程执行

文档评论(0)

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

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

1亿VIP精品文档

相关文档