有没有一种优雅的方法可以知道工作线程何时执行完毕,以便我可以访问它产生的资源?
例如,如果工作线程使用查询 SQL Server 列表
ServersSqlDataSourceEnumerator.Instance.GetDataSources();
并将结果保存在 DataTable 变量中,我可以使用什么机制来知道此 DataTable 变量何时已填充/可用。我不想轮询 ThreadState;最好在事件完成后触发事件,这样我就可以对结果执行操作。
谢谢!
最佳答案
您可以使用回调机制或阻止事件来了解异步操作的完成。请参阅此页面以获取 Asychronous Programming Model in .net - 您可以对任何委托(delegate)调用 BeginInvoke 以异步方式执行操作。
如果您使用的是 BackgroundWorker 类型,则可以订阅 RunWorkerCompleted event .
关于c# - 如何在不轮询 ThreadState 的情况下判断线程是否完成执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945122/