C# 线程创建实例

线程在ASP.NET 中的使用非常广泛,也非常重要。但是,由于进程和线程是比较靠近底层的东西,想要准确的理解他们并不容易。为了帮助大家简单的理解线程与进程的概念,在这里,我举一个简单的例子。

我把整个的计算机比喻为一个正在建设中的大楼,这个大楼里又有很多个小的包工头(相当于操作系统中的各种应用程序),他们有各自负责的建设任务,互不干扰。每个包工头下面又有更小的包工头,他们有的负责砌墙,有的负责粉刷,有的负责装修,每个大包工头下有一个主小包工头。如在负责砌墙和装修的大包工头的小包工头里,负责砌墙的小包工头(建设工作都首先把房子盖起来,之后才可以进行其他的操作)就是主小包工头。小包工头可以共享各自所属大包工头的一些资源信息,但是不能使用其他大包工头的资源信息。这里的大包工头就相当于进程,小包工头就相当于线程。我们开启一个应用程序就相当于大包工头接手了一份包工。大包工头再把具体的工作承包给小包工头,具体的执行就是依靠下面的小包工头、员工完成的。各个小包工头所包工作的完成也就意味着大包工头负责的项目完成,同时也意味着应用程序的结束。不知道这个例子讲的是不是很合适,下面就通过具体的代码实例创建一个线程。

asp.net中创建一个线程的实现方法也非常简单,只需将其声明并为其提供线程起始点处的方法委托即可实现。创建新的线程时,需要使用 Thread 类,Thread 类具有接受一个 ThreadStart 委托或 ParameterizedThreadStart 委托的构造函数。该委托包装了调用 Start 方法时由新线程调用的方法。创建了Thread类 的对象之后,线程对象已存在并已配置,但并未创建实际的线程,只有在调用Start()方法后,才会创建实际的线程。

ASP.NET的Start()方法用来使线程被安排执行,它有两种重载形式,下面分别介绍。

(1)使操作系统将当前实例的状态更改为ThreadState.Running,语法如下。

public void Start ()

(2)使操作系统将当前实例的状态更改为ThreadState.Running,并提供线程执行时要使用的数据的对象(参数、各类操作系统资源)。语法如下。

public void Start (Object parameter)

注意:如果线程已经终止,就无法通过再次调用Start方法来重新启动。

例如: 创建一个控制台应用程序,自定义一个静态方法createThread(),在Main()方法中实例化Thread类对象创建一个新的线程,调用Start()方法启动该线程。具体代码如下:

static void Main(string[] args)
{
  Thread myThread;//声明线程
//用线程起始点的ThreadStart委托创建该线程的实例
myThread = new Thread(new ThreadStart(createThread));
  myThread.Start();//启动线程
}
public static void createThread()
{
  Console.Write("创建线程");
}

 注意:线程的入口(本例中为createThread)不带任何参数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值