是否可以异步连接到SQL服务器?

时间:2009-04-23 17:20:53

标签: sql-server asynchronous

我知道如何使用Begin / EndExecuteNonQuery异步执行SQL服务器上的命令,但是SqlConnection类上是否有Begin / EndOpen方法?我希望这是异步的,因为有时它很慢,我不想一直阻塞一个线程。这有意义吗?

4 个答案:

答案 0 :(得分:3)

没有BeginConnect方法,但你可以启动一个新的线程,只要它适合你就可以在后台执行。

答案 1 :(得分:1)

你可以,但它非常有用是不寻常的。数据库的稀缺资源通常与连接无关,而与查询有关。您是否怀疑您的应用程序在打开连接时是否阻止了?

答案 2 :(得分:0)

或者,为了保持相同的模式,使用您想要的方法签名创建一个委托作为异步方法,并在委托上执行BeginInvoke / EndInvoke

当然,这并不会使方法真正异步,因为在幕后还有一个等待同步方法返回的线程,但是允许你使用普通模式并且它使用来自线程池的线程来制作电话。

答案 3 :(得分:0)

我会断开整个命令的执行,而不仅仅是打开连接。 一旦线程完成,只需要小心如何处理结果。