public void testThreads()
for (int i = 0; i < 10; i++)
{
_ManualEvents[i] = new ManualResetEvent(false); //新建 ManualResetEvent 对象并且初始化为无信号状态
}
WaitHandle.WaitAll(_ManualEvents);
// 线程结束后执行后面的主线程代码
Console.WriteLine("结束了");
Console.ReadLine();
}
public void testMethod(object objEvent)
{
//TODO: Add your code here
ManualResetEvent e = (ManualResetEvent)objEvent;
e.Set();
{
ThreadPool.SetMaxThreads(5,5);// 允许线程池中运行最多 5 个线程
ManualResetEvent[] _ManualEvents = new ManualResetEvent[10];for (int i = 0; i < 10; i++)
{
_ManualEvents[i] = new ManualResetEvent(false); //新建 ManualResetEvent 对象并且初始化为无信号状态
//将工作项加入线程池里
System.Threading.ThreadPool.QueueUserWorkItem(new WaitCallback(testMethod), _ManualEvents[i]);}
WaitHandle.WaitAll(_ManualEvents);
// 线程结束后执行后面的主线程代码
Console.WriteLine("结束了");
Console.ReadLine();
}
public void testMethod(object objEvent)
{
//TODO: Add your code here
ManualResetEvent e = (ManualResetEvent)objEvent;
e.Set();
}
参考:http://www.cnblogs.com/SkySoot/archive/2012/04/01/2429259.html
http://bbs.csdn.net/topics/370019875
http://www.cnblogs.com/kingdom_0/articles/2034883.html