多线程技术(二).NET对多线程的支持

在.NET程序设计中,线程是使用Thread类(或Timer类(线程计数器)、ThreadPool类(线程池))来处理的,这些类在System.Threading命名空间中:
using System.Threading;
Thread类:(实现线程的主要方法)一个Thread实例管理一个线程,即执行序列。通过简单实例化一个Thread对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理。
Timer类:适用于间隔性的完成任务。
ThreadPool:适用于多个小的线程。

Thread类的主要属性
1、CurrentThread:获取当前正在运行的线程。
2、Name:获取或设置线程的名称。
3、Priority:获取或设置线程的优先级。
4、TreadState:获取或设置线程的当前状态。
5、IsBackground:指示线程是否为后台线程。
6、IsAlive:指示当前线程的执行状态。
7、CurrentContext:获取线程其中执行的当前上下文。

Thread类的主要方法
1、Abort:终止线程。
2、GetDomain:返回当前线程正在其中运行的当前域。
3、Interrupt:中断处于WaitSleepJoin线程状态的线程。
4、Join:阻塞调用线程,直到某个线程终止时为止。
5、ResetAbort:取消为当前线程请求的Abort
6、Resume:继续已挂起的线程。
7、Sleep:将当前线程阻塞指定的毫秒数。
8、Start:启动线程。
9、Suspend;挂起线程。

Thread类中线程的状态
由Thread类的TreadState属性来确定:
Abort、AbortRequested、BackGround、Running、Stopped、StopRequested、Suspended、SuspendRequsted、Unstarted、WaitSleepJoin

线程的建立与启动
新建一个线程的过程:只需将其声明并为其提供线程起始点处的方法委托,再用Thread.Start()方法启动该线程
(1)声明:
Thread a;
(2)实例化
 a=new Thread(new  ThreadStart(b));
其中,b为新建过程中执行的过程名。
(3)调用Thread.Start()方法启动该线程
a.Start();

例题1:线程的建立和启动

View Code
using System;
using System.Threading;
public class A
{ public void ff()//线程启动时调用此方法
 { Console.WriteLine("A.ff()方法在另一个线程上运行!!");
  Thread.Sleep(3000);//将线程阻塞一定时间
  Console.WriteLine("终止工作线程调用此实例方法!!"); }
 public static void gg()
 { Console.WriteLine("A.gg()方法在另一个线程上运行!!");
  Thread.Sleep(5000);//将线程阻塞一定时间
  Console.WriteLine("终止工作线程调用此静态方法!!"); }}
public class B
{ public static void Main()
 {
  Console.WriteLine("***********线程简单示例!***********");
  A a=new A();
  Thread s1=new Thread(new ThreadStart(a.ff));
  s1.Start();
  Console.WriteLine("启动新线程ff()方法后,被Main()线程调用!!");
  Thread s2=new Thread(new ThreadStart(A.gg));
  s2.Start();
  Console.WriteLine("启动新线程gg()方法后,被Main()线程调用!!");
  Console.ReadLine();
 }}

线程的挂起、恢复与终止
线程的挂起(或暂停)
(1)调用Thread.Sleep()方法将线程挂起。
注:Sleep()方法指定的时间以毫秒为单位。
(2)调用s1.Suspend() 方法将线程挂起
区别:前者为静态方法,并且使线程立即暂停一定时间;后者为实例方法,不会使线程立即停止执行,直到线程到达安全点之后,它才将该线程暂停。
线程的恢复与终止
调用Resume()方法将线程恢复;
调用Abort()方法将线程终止;

其他与操作线程相关的方法
Join():使一个线程等待另一个线程停止
Interrupt():中断处于JoinWaitSleep线程状态的线程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值