黑马程序员---Thread类应用

本文详细介绍了在C#中使用System.Threading命名空间创建、启动、终止、挂起和恢复线程的方法,包括线程优先级设定、共享数据同步等关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    看了些线程的文字,把它写下来,作为自己的复习吧。Thread 来自System.Threading类。
1:使用它首先进行初始化:
  System.Threading.Thread myThread =  new System.Threading.Thread(excuteThreadFunctionName); 其中 excuteThreadFunctionName为线程myThread实例要执行的方法名(这个方法名不允许有参数,也不允许有返回值)。
2:启动线程:myThread.Start();到此构造的线程就开始启动执行方法(excuteThreadFunctionName)中的语句了。
要让线程休眠,就在线程执行的过程中用Thread.sleep(毫秒数);进行休眠(暂停线程的暂停)直到达到给定的毫秒数后在接着执行。
3:要挂起线程:用Suspend()方法(myThread.Suspend())。线程挂起和线程休眠不同,挂起不会立即是执行停止,而是在线程执行到一个安全点时才停止,等到其他线程调用Resume()方法才继续执行。(一个线程不能对另一个线程调用Sleep ,但是一个线程可以对另一个线程调用Suspend。)
4:终止(结束)当前线程用方法:Abort();
在一个局部方法中启动一个线程后在这个方法结束后该线程自然也就终止了。
在多个线程共同启动的时候,如果有共享数据,则在修改这些数据时要用lock把代码块标记为互斥代码块,使之在同一时刻只有一个线程访问,防止误读数据。

 

      在c#中写一个多线程应用是非常简单的,本章将介绍如何在c#种开发多线程程序。在.net中线程是由System.Threading 名字空间所定义的。所以你必须包含这个名字空间。
  using System.Threading; 

  开始一个线程
  
  System.Threading 名字空间的线程类描述了一个线程对象,通过使用类对象,你可以创建、删除、停止及恢复一个线程。创建一个新线程通过new 操作,并可以通过start()方法启动线程

  thread = new Thread(new ThreadStart(HelloWorld));
  thread.Start(); 
 
  注意:和java程序不同,创建新线程并调用start()方法后并不去调用run()方法,而是传递线程调用程序
 
下面是启动线程执行的函数

protected void HelloWorld()
{
string str ;
Console.write("helloworld");
}

杀死一个线程

线程类的 Abort()方法可以永久的杀死一个线程。在杀死一个线程起前应该判断线程是否在生存期间。

if ( thread.IsAlive )
{
thread.Abort();

停止一个线程

Thread.Sleep 方法能够在一个固定周期类停止一个线程

thread.Sleep(); 
 
设定线程优先级

线程类中的ThreadPriority 属性是用来设定一个ThreadPriority的优先级别。线程优先级别包括Normal, AboveNormal, BelowNormal, Highest, and Lowest几种。


thread.Priority = ThreadPriority.Highest; 

挂起一个线程

调用线程类的Suspend()方法将挂起一个线程直到使用Resume()方法唤起她。在挂起一个线程起前应该判断线程是否在活动期间。

if (thread.ThreadState = ThreadState.Running )
{
thread.Suspend();
}
 

唤起一个线程

通过使用Resume()方法可以唤起一个被挂起线程。在挂起一个线程起前应该判断线程是否在挂起期间,如果
线程未被挂起则方法不起作用。


if (thread.ThreadState = ThreadState.Suspended )
{
thread.Resume();
} 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值