两线程异步执行,中间等待另一线程执行完再执行
2011-01-29 16:06
316 查看
--主线程中
Stats=false;
AsyncOutPutHandler handler = new AsyncOutPutHandler(ExcelW.ConvertDataTableToRecordset);
AsyncCallback callback = new AsyncCallback(ExcelW.Convert_Completed);
--异步线程调用
handler.BeginInvoke(DT, callback, null);
--主线程其他代码
......
--等待异步线程 Stats 为全局
while (!Stats)
{
}
-----------------------------------------------------------------------------------------------
异步调用了方法 ConvertDataTableToRecordset
此方法调用完后直接回调方法 ExcelW.Convert_Completed 将全局Stats设为TRUE
定义全局委托
private delegate void AsyncOutPutHandler(System.Data.DataTable dt);
Stats=false;
AsyncOutPutHandler handler = new AsyncOutPutHandler(ExcelW.ConvertDataTableToRecordset);
AsyncCallback callback = new AsyncCallback(ExcelW.Convert_Completed);
--异步线程调用
handler.BeginInvoke(DT, callback, null);
--主线程其他代码
......
--等待异步线程 Stats 为全局
while (!Stats)
{
}
-----------------------------------------------------------------------------------------------
异步调用了方法 ConvertDataTableToRecordset
此方法调用完后直接回调方法 ExcelW.Convert_Completed 将全局Stats设为TRUE
定义全局委托
private delegate void AsyncOutPutHandler(System.Data.DataTable dt);
相关文章推荐
- iOS 等待异步线程结束再执行后续代码
- 线程,任务,同步之异步执行和等待线程
- 等待线程池内线程执行完成的一种方法
- 主线程等待所有子线程完成后再执行
- 顺序执行,等待前面结束后面才执行是同步(false);否则是异步(true)
- C# 线程知识--使用Task执行异步操作(转)
- CountDownLatch实现主线程等待所有子线程运行结束后再继续执行的实现
- 使用NSThread创建线程,执行NSTask,但是异步读取pipe的时候出错
- Java多线程--让主线程等待所有子线程执行完毕代码
- WPF多线程(后台线程_和异步执行)
- 如何在java中获取线程异步执行之后的结果
- Android主线程等待子线程执行结果
- java线程池主线程等待子线程执行完成后再继续处理后面工作
- WinForm程序如何等待多个线程执行完后提示用户?
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- c#等待所有子线程执行完毕方法
- Thread.join()方法实现main()方法等待所有子线程执行完成[base jdk8]
- c#等待所有子线程执行完毕方法
- 线程 GCD 同步执行 异步执行
- Java并发编程示例(六):等待线程执行终止