文档详情

实验二:多线程开发.doc

发布:2017-07-08约5.88千字共11页下载文档
文本预览下载声明
武夷学院实验报告 课程名称:_.NET程序设计_ 项目名称:_多线程开发 姓名:许梅琼专业:计算机科学与技术班级:2班学号:20144012022同组成员无 实验预习部分: 软硬件环境:PC一台、Windows系统、Visual Studiao 2010 实验准备内容: 进程、线程概念 a:进程是操作系统中正在执行的不同应用程序的一个实例,操 作系统分离不同的进程。 b:线程是操作系统分配处理器时间的基本单元,每个线程都维 护异常处理程序、调度优先级和一组系统用于在调度该线程前保 存线程上下文的结构。 创建新工作线程的步骤 a:创建一个将在主线程外执行的函数,即类的方法,用于执行 新线程要执行的逻辑操作。 b:在主线程(Main方法)中创建一个Thread的实例,指向步骤① 中的函数。 c:调用步骤②中创建Thread实例的Start方法,以启动新线程。 线程状态 ?Unstarted:未开始状态 ?Running:运行状态 ?WaitSleepJoin:阻止状态 ?SuspendRequested:请求挂起状态 ?Suspended:挂起状态 ?AbortRequested:请求终止状态 ?Aborted:销毁状态 ?StopRequested;请求停止状态 ?Stopped:停止状态 线程启动终止挂起唤醒暂停让步加入中断等方法 ?Start():启动线程 ?Abort():终止线程 ?Suspend():挂起线程 ?Resume():唤醒被Suspend()方法挂起的线程。 ?Sleep():暂停线程 ?Yield():让步线程 ?Join():加入线程 ?Interrupt():中断线程 线程同步处理方法 当多个线程可以调用单个对象的属性和方法时,一个线程可能会 中断另一个线程正在执行的任务,使该对象处于一种无效状态, 因此必须针对这些调用进行同步处理。 ·使用lock语句同步代码块 ·使用监视器同步代码块 线程池概念 线程池时可以用来在后台执行多个任务的线程集合,这使主线程 可以自由地异步执行其他任务。线程池通常用于服务器应用程序。 定时器概念以及执行任务的典型步骤 System.Theading.Timer是一种定时器工具,用来在一个后台线 程计划执行指定任务。Timer提供以指定的时间间隔执行方法的 机制。 使用Timer线程实现和计划执行一个任务的电型步骤如下: ①使用TimerCallback委托指定Timer执行的方法。例如: TimerCallback timerCB=new TimerCallback(PrintTime); ②创建定时器。例如: Timer timer1=new Timer(timerCB, //指定定时器要执行的任务 “timer1”, //指定要传递给任务方法的参数 0, //指定在第一次执行方法之前等待的时间量(截止时间) 1000); // 定时器时间间隔(ms) 实验过程记录: 书本P252-例14.2和14.3,实验指导书第七章实验7-7、7-8、 P252例14.2创建和启动新线程示例: using System; using System.Threading; namespace CSharpBook.Chapter14 { public class WorkThread1 { static void Main() { Console.Write(Main线程开始。); Thread t = new Thread(DoWork); t.Start(); for (int i = 0; i 10; i++) { Console.Write (M); Thread.Sleep(500); } Console.Write( Main线程结束。); Console.ReadKey(); } public static void DoWork() { Console.Write(工作线程开始。); for (int i = 0; i 10; i++) { Console.Write(W); Thread.Sleep(500); } Console.Write( 工作线程
显示全部
相似文档