第11章多线程.ppt

上传人:本田雅阁 文档编号:2576672 上传时间:2019-04-11 格式:PPT 页数:21 大小:265.01KB
返回 下载 相关 举报
第11章多线程.ppt_第1页
第1页 / 共21页
第11章多线程.ppt_第2页
第2页 / 共21页
第11章多线程.ppt_第3页
第3页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第11章多线程.ppt》由会员分享,可在线阅读,更多相关《第11章多线程.ppt(21页珍藏版)》请在三一文库上搜索。

1、第11章 多线程,唐大仕 http:/,内容,1. 线程及其创建 2. 线程同步控制 3. 线程池及其他线程类 4. 线程在集合中使用 5. 线程在Window界面中使用,多线程的概念,进程Process 线程Thread 线程中的指令:一个方法(委托) 线程中的数据:相关的对象,System.Threading.Thread属性,System.Threading.Thread方法,线程的创建,Thread类有一个构造方法,格式如下: public Thread( ThreadStart fun ); 其中ThreadStart是一个委托: public delegate void Thre

2、adStart(); 下面是创建一个Thread对象并启动这个线程的一般方法: Thread thread = new Thread( new ThreadStart( obj.fun ); thread.Start();,ThreadTest.cs,线程的启动和停止,启动:调用线程对象的Start() 停止 线程函数会一直执行下去,直至它结束 另外 Abort() Suspend() Resume() Sleep(毫秒数),线程的状态 ThreadState,线程的优先级 ThreadPriority,线程应用举例,ThreadDraw.cs,2. 线程的同步,使用Join()方法 将单独的

3、执行线程合并成一个线程,ThreadJoin.cs,Lock语句与Monitor类,lock( 对象或表达式 ) 语句 ,System.Threading.Monitor.Enter(对象或表达式); try . finally System.Threading.Monitor.Exit(对象或表达式); ,用于同步控制的类,3. 线程池及其他相关类,线程池(ThreadPool),Threadpool.QueueUserWorkItem()等方法来提交相应的任务 QueueUserWorkItem(WaitCallback, object) QueueUserWorkItem(WaitCal

4、lback) 其中public delegate void WaitCallback( object state );,ThreadPoolTest.cs,System.Threading.Timer类,Timer的构造方法如下: public Timer( TimerCallback callback, /执行的任务 object state, / 数据 int dueTime, / 启动前的延时 int period / 任务之间的间隔 ); 其中TimerCallback是: public delegate void TimerCallback( object state );,Time

5、rTest.cs,System.Windows.Forms.Timer类,4. 集合的线程安全性,IsSynchoronized属性用于判断是否为同步版本;SyncRoot属性提供了集合自己的同步版本 Array,ArrayList,SortedList,Hashtable等,都可以使用Synchronized()方法获取一个线程安全的包装对象,SynchornizedArrayList.cs,5. Windows界面与线程,界面的主线程 对界面的更新只能使用主线程 其他线程则可以这样: if(this.InvokeRequired ) this.BeginInvoke( new AddMsg(this.AddMsgFun), new object msg ); /显示到界面上 else this.AddMsgFun( msg ); ,使用BackgroundWorker组件,DoWork事件 RunWorkerAsync方法,问题与讨论,,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1