异步回调 主线程等待子线程结束
2012-02-14 12:43
344 查看
static TimeSpan waitTime = new TimeSpan(0, 0, 5);
static WaitHandle[] waitHandles = new WaitHandle[]
{
new AutoResetEvent(false)
//new AutoResetEvent(false)
};
Thread th;
private void button1_Click(object sender, EventArgs e)
{
//DateTime dt = DateTime.Now;
ThreadPool.QueueUserWorkItem(new WaitCallback(DoTask), waitHandles[0]);
WaitHandle.WaitAll(waitHandles);
// dt = DateTime.Now;
ThreadPool.QueueUserWorkItem(new WaitCallback(DoTask), waitHandles[0]);
int index = WaitHandle.WaitAny(waitHandles);
}
static void DoTask(Object state)
{
AutoResetEvent are = (AutoResetEvent)state;
Thread.Sleep(5000);
//int time = 1000 * r.Next(2, 10);
// Console.WriteLine("Performing a task for {0} milliseconds.", time);
// Thread.Sleep(time);
are.Set();
}
static void Work()
{
Thread.Sleep(waitTime);
}
static WaitHandle[] waitHandles = new WaitHandle[]
{
new AutoResetEvent(false)
//new AutoResetEvent(false)
};
Thread th;
private void button1_Click(object sender, EventArgs e)
{
//DateTime dt = DateTime.Now;
ThreadPool.QueueUserWorkItem(new WaitCallback(DoTask), waitHandles[0]);
WaitHandle.WaitAll(waitHandles);
// dt = DateTime.Now;
ThreadPool.QueueUserWorkItem(new WaitCallback(DoTask), waitHandles[0]);
int index = WaitHandle.WaitAny(waitHandles);
}
static void DoTask(Object state)
{
AutoResetEvent are = (AutoResetEvent)state;
Thread.Sleep(5000);
//int time = 1000 * r.Next(2, 10);
// Console.WriteLine("Performing a task for {0} milliseconds.", time);
// Thread.Sleep(time);
are.Set();
}
static void Work()
{
Thread.Sleep(waitTime);
}
相关文章推荐
- 主线程等待子线程结束
- Java Thread.join()详解--父线程等待子线程结束后再结束
- 前台线程与后台线程及线程池中等待子线程结束
- C++调用perl 主线程等待子线程结束
- 多线程001 - 主线程等待子线程结束
- 线程:Java主线程等待子线程结束
- 主线程等待子线程结束(多线程结束标识)
- Java:主线程和子线程-----主线程等待子线程结束
- Java 并发编程中的 CountDownLatch 锁用于多个线程同时开始运行或主线程等待子线程结束
- Java Thread.join()详解--父线程等待子线程结束后再结束
- Java多线程协作CountDownLatch,主线程等待子线程结束
- java 主线程等待子线程结束
- 主线程等待子线程执行结束后再执行的实现方式
- iOS 等待异步线程结束再执行后续代码
- java并发-主线程等待子线程结束
- [原] 主线程等待子线程结束(多线程结束标识)
- java 多线程 主线程等待子线程结束
- 第一节:复习委托,并且通过委托的异步调用开启一个新线程和异步回调、异步等待。
- 异步 等待异步 异步回调 获取异步结果
- JavaScript是单线程运行的,但是ajax是如何实现的异步函数回调的?