线程和线程池例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;//对于多线程一定要引用.
//在.net framework class library中,所有与多线程机制应用相关的类都是放在System.Threading命名空间中的。如果你想在你的应用程序中使用多线程,就必须包含这个类。
//我们通过其中提供的Thread类来创建和控制线程,ThreadPool类用于管理线程池等。
//(此外还提供解决了线程执行安排,死锁,线程间通讯等实际问题的机制。)
namespace _1_多线程Thread
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {

 

            Thread.CurrentThread.Name="aa";//获取当前线程名称
            Console.WriteLine("当前线程名称:" + Thread.CurrentThread.Name + "  当前线程状态 Status:" + Thread.CurrentThread.ThreadState);

            //线程池的例子
            for (int i = 1; i < 10; i++)
            {
 //在线程池中创建一个线程池线程来执行指定的方法(用委托WaitCallback来表示)
                //,并将该线程排入线程池的队列等待执行
                ThreadPool.QueueUserWorkItem(new WaitCallback(MethodA), i);
            }

                Console.ReadLine();

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

        }
        static void MethodA(object num)
        {
            // 转换接收到的线程编码
            int QueNum = (int)num;
            //显示线程号
            Console.WriteLine("线程号:{0}", num);
            //换行
            Console.WriteLine();
        }
    }
}

posted @ 2013-06-26 14:26  啸月☆天狼  阅读(242)  评论(0编辑  收藏  举报