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();
}
{
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();
}
相关文章推荐
- 关于C#线程,线程池和并行运算的简单使用和对比
- 关于C#线程,线程池和并行运算的简单使用和对比
- 一起谈.NET技术,关于C#线程,线程池和并行运算的简单使用和对比
- 关于C#线程,线程池和并行运算的简单使用和对比
- 关于C#线程,线程池和并行运算的简单使用和对比
- C#使用foreach语句简单遍历数组的方法
- C#简单访问CANcaseXL,使用CANcaseXL收发报文
- 简单使用线程池
- 自定义线程池-c#的简单实现
- c# winform 系统托盘图标的创建与简单使用
- 简单的C#使用Oracle
- C#的pictureBox怎样使用多张图片简单切换
- c#使用API进行模拟鼠标点击 底层操作同样简单
- redis——学习之路五(简单的C#使用redis)
- extern外部方法使用C#简单例子
- 使用C#开发一个简单的P2P应用
- 使用C++实现简单线程池v1.0
- 蛙蛙推荐:在c#使用IOCP(完成端口)的简单示例
- C#:System.Array简单使用
- C#中缓存的简单方法及使用Sql设置缓存依赖项