System.Threading 命名空间提供支持多线程编程的类和接口,使您可以轻松地执行创建和启动新线程,同步多个线程,挂起线程以及中止线程等任务。

Thread类有几个至关重要的方法,描述如下:
Start():启动线程;
Sleep(int):静态方法,暂停当前线程指定的毫秒数;
Abort():通常使用该方法来终止一个线程;
Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;
Resume():恢复被Suspend()方法挂起的线程的执行;

(1) 创建

若要在 C# 代码中合并线程处理,只需创建一个将在主线程外执行的函数,并让一个新的 Thread 对象指向该函数即可。

System.Threading.Thread newThread;
newThread = new System.Threading.Thread(anObject.AMethod); //创建线程实例newThread,其指向anObject对象的AMethod方法
 
newThread.Start();//启动线程

下面以一个实际运用的例子介绍线程基本操作。此示例目的是将一个大规模的运算置于后台进行。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
 
namespace ThreadStudyw
{
    public partial class Form1 : Form
    {
        public
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs
        {
            Thread t=new Thread(new ThreadStart(this.s));
            t.Start();//如果不以辅助线程执行s函数,窗体将处于等待状态,无法响应请求,待执行完成后方在标签上显示“结束了”
           //而以辅助线程后台执行,则直接执行显示“结束了”
            label1.Text = "结束了";
            
        }
        private void
        {
            
            for(int
                for (int
                {
 
                }
        }
    }
}

(2)终止

正常情况下,当函数执行完,辅助线程自动终止。

也可以调用Abort()方法,终止线程,该方法将引发ThreadAbortException异常。

但Abort 方法不直接导致线程中止,因为目标线程可捕捉 ThreadAbortException 并在 finally 块中执行任意数量的代码。