Mar*_*ter 2 .net c# multithreading worker-thread
是否有一种优雅的方式来了解工作线程何时完成执行,以便我可以访问它生成的资源?
例如,如果工作线程使用查询SQL Server列表
ServersSqlDataSourceEnumerator.Instance.GetDataSources();
并将结果保存在DataTable变量中,我可以使用什么机制来了解此DataTable变量何时已填充/可用.我不想轮询ThreadState; 当事件完成时触发事件是理想的,这样我就可以对结果执行操作.
谢谢!
您可以在事件上使用回调机制或阻止来了解异步操作的完成情况.有关.net中的异步编程模型,请参阅此页面- 您可以在任何委托上调用BeginInvoke以异步方式执行操作.
如果您使用的是BackgroundWorker类型,则可以订阅RunWorkerCompleted事件.