SqlConnection
类的GetSchema
方法如何工作?
它运行查询吗?可以异步调用吗?
最佳答案
你能委托(delegate)调用“GetSchema”的方法吗?因为 SQL 是事务系统,我们在 c# 中使用的并行任务非常不同,甚至可能在 sql 中不存在。这篇文章中排名最高的答案很好地解释了这一点。
SQL Server (TSQL) - Is it possible to EXEC statements in parallel?
如果您不能异步运行 GetSchema 方法,因为该方法只返回一个数据表,您也可以对返回相同内容的数据库执行查询。
这篇文章显示 getSchema 返回一个数据表:http://msdn.microsoft.com/en-us/library/ms136365(v=vs.110).aspx
阅读这篇文章的评论:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.getschema(v=vs.110).aspx
如果您多次调用 getSchema,最后一次调用可能会覆盖第一个响应。
如果可以,您可以在 SQL 中创建一个服务队列来处理“异步执行”,但它非常复杂:http://rusanu.com/2009/08/05/asynchronous-procedure-execution/
希望这对您有所帮助!
关于c# - GetSchema 方法可以异步工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705698/