C#的多线程机制初探(2)

来源:互联网 发布:淘宝宝贝自动上下架 编辑:程序博客网 时间:2024/05/18 19:38

 本文将对C#编程中的多线程机制进行探讨,通过一些实例解决对线程的控制,多线程间通讯等问题。为了省去创建GUI那些繁琐的步骤,更清晰地逼近线程的本质,下面所有的程序都是控制台程序,程序最后的Console.ReadLine()是为了使程序中途停下来,以便看清楚执行过程中的输出。

  好了,废话少说,让我们来体验一下多线程的C#吧!

二.操纵一个线程

  任何程序在执行时,至少有一个主线程,下面这段小程序可以给读者一个直观的印象:

[CODE]
//SystemThread.cs
using System;
using System.Threading;

namespace ThreadTest
{
  class RunIt
  {
    [STAThread]
    static void Main(string[] args)
    {
      Thread.CurrentThread.Name="System Thread";//给当前线程起名为"System Thread"
Console.WriteLine(Thread.CurrentThread.Name+"'Status:"+Thread.CurrentThread.ThreadState);
      Console.ReadLine();
    }
  }
}
[/CODE]

  编译执行后你看到了什么?是的,程序将产生如下输出:

  System Thread's Status:Running

  在这里,我们通过Thread类的静态属性CurrentThread获取了当前执行的线程,对其Name属性赋值“System Thread”,最后还输出了它的当前状态(ThreadState)。所谓静态属性,就是这个类所有对象所公有的属性,不管你创建了多少个这个类的实例,但是类的静态属性在内存中只有一个。很容易理解CurrentThread为什么是静态的--虽然有多个线程同时存在,但是在某一个时刻,CPU只能执行其中一个。

原创粉丝点击