实验二:多线程开发.doc
文本预览下载声明
武夷学院实验报告
课程名称:_.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( 工作线程
显示全部