您的位置:首页 > 编程语言 > C#

C#简单使用线程池

2014-04-01 14:10 288 查看
static void Main(string[] args)

{

ThreadPool.QueueUserWorkItem(ThreadWork, "t1");

ThreadPool.QueueUserWorkItem(ThreadWork, "t2");

ThreadPool.QueueUserWorkItem(ThreadWork, "t3");

ThreadPool.QueueUserWorkItem(ThreadWork, "t4");

Console.ReadLine();

}

public static void ThreadWork(object state)

{

Console.WriteLine("线程{0}开始执行…… ", (string)state);

Thread.Sleep(10000);

Console.WriteLine("线程{0}运行结束…… ", (string)state);

}

等待所有线程执行完成再继续执行:

private static ManualResetEvent[] mres = null;

static void Main(string[] args)

{

mres = new ManualResetEvent[4];

for (int i = 1; i < 5; i++)

{

mres[i - 1] = new ManualResetEvent(false);

ThreadPool.QueueUserWorkItem(ThreadWork, mres[i-1]);

}

WaitHandle.WaitAll(mres);

Console.WriteLine("线程都已经执行完成。。。");

Console.ReadLine();

}

public static void ThreadWork(object state)

{

Console.WriteLine("线程开始执行…… ", "");

Thread.Sleep(10000);

Console.WriteLine("线程运行结束…… ", "");

var re = state as ManualResetEvent;

re.Set();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: