`

多线程

阅读更多

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 Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            Thread t=new Thread(new ThreadStart(this.s));

            t.Start();//如果不以辅助线程执行s函数,窗体将处于等待状态,无法响应请求,待执行完成后方在标签上显示“结束了”

           //而以辅助线程后台执行,则直接执行显示“结束了”

            label1.Text = "结束了";

           

        }

        private void s()

        {

           

            for(int i=0;i<100000;i++)

                for (int j = 0; j < 1000000; j++)

                {

 

                }

        }

    }

}

(2)终止

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

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

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ljc_zy/archive/2009/07/24/4378360.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics