线程和线程池例子
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();
}
}
}