C# 多线程的等待所有线程结束 用 ManualResetEvent 控制
2015-08-09 20:08
786 查看
using System; using System.Collections.Generic; using System.Threading; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var waits = new List<EventWaitHandle>(); for (int i = 0; i < 10; i++) { var handler = new ManualResetEvent(false); waits.Add(handler); new Thread(new ParameterizedThreadStart(Print)) { Name = "thread" + i.ToString() }.Start(new Tuple<string, EventWaitHandle>("test print:" + i, handler)); } WaitHandle.WaitAll(waits.ToArray()); Console.WriteLine("Completed!"); Console.Read(); } private static void Print(object param) { var p = (Tuple<string, EventWaitHandle>)param; Console.WriteLine(Thread.CurrentThread.Name + ": Begin!"); Console.WriteLine(Thread.CurrentThread.Name + ": Print" + p.Item1); Thread.Sleep(300); Console.WriteLine(Thread.CurrentThread.Name + ": End!"); p.Item2.Set(); } } }
相关文章推荐
- c#中xml序列化 和binary 序列化
- c# 友元程序集
- 17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)
- hdu 5364 (bc#50 1001) Distribution money
- C#匿名类型(Anonymous Type)学习日记
- 国内大型的内部 C# 编程规范
- C#调用外部EXE-LibSVM为例
- 使用C# 和Consul进行分布式系统协调
- C#.net中如何操作XML
- 用C#生成KML路径文件(下篇)
- 使用C#详解常用排序算法(二):插入排序(Insert Sort)
- 使用C#详解常用排序算法(一):概述
- C#中得到两个数百分比
- 匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的
- C#中的集合有几种?
- Visual C#2010学习笔记三之return返回值的使用
- C#高级编程八十天----异常类
- 【常用】C#万年历代码
- C# 入门篇之listview用法
- C#-WinForm登录窗体实现记住密码的功能(仿QQ实现)