欢迎来到天天文库
浏览记录
ID:48059827
大小:949.50 KB
页数:12页
时间:2020-01-13
《多线程(二).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第14章多线程(二)教师:办公室:EMAIL:上次回顾多线程概述Thread类(重点)线程池2本讲目标Timer类(重点)线程访问控件线程同步3Timer类线程时钟Timer类将需要调用的方法加入队列等待被周期性执行Timer类包含在System.Threading命名空间Timer类通过系统提供的线程池线程,在每次计时器期满时运行计时器委托在退出应用程序之前需要终止计时器4时钟控件和线程时钟的区别名称空间不同时钟控件在System.Windows.Forms命名空间线程时钟在System.Threading命名空间线程执行不同时钟控件不能在单独的线程上执行,而线程时钟可以精度不同时钟控件
2、简单,适合用于周期性的更新用户界面高精度的计时器,则应该使用线程时钟5System.Threading.Timer的用法//创建时钟,每100毫秒执行一次FuncSystem.Threading.TimerthreadingTimer=newSystem.Threading.Timer(newTimerCallback(Func),null,0,100);//停止时钟,释放资源threadingTimer.Dispose();threadingTimer=null;6System.Windows.Forms.Timer类的使用//时钟控件100毫秒执行周期timer1.Interval=1
3、00;//启动时钟控件timer1.Enabled=true;演示示例:如何使用时钟控件7线程访问界面控件记住:不要直接从工作线程内部访问或更新控件如果需要在工作线程内部更新控件,应该使用Control.Invoke方法,用委托来执行控件在.NETCompactFramework中,Control.Invoke只支持EventHandler委托ThreadPool.QueueUserWorkItem的WaitCallback委托也可以执行控件8线程同步在多线程访问共享数据的情况下,必须同步对数据的访问思考:一个线程简单地递增变量,另一个线程简单地递减变量。每个线程内部循环1000~1000
4、000次,当两个工作线程执行完成时,变量的值应该始终等于09Monitor类objectfunction1Protector=newobject();voidFunction1(){Monitor.Enter(function1Protector);//...执行循环操作Monitor.Enter(function1Protector);}包含共享数据,可以使用Monitor和Mutex类。Monitor和Mutex都会确保临界区每次只能由一个线程执行10总结各种Timer类作用类似,细节上有区别工作线程不要直接访问控件,应该用委托访问多个线程同时访问的资源,应该及时的保护起来11课后任务
5、完成学习手册上的详细上机试验完成老师布置的课后习题12
此文档下载收益归作者所有