2009-04-23 70 views
2

我知道如何使用Begin/EndExecuteNonQuery異步執行SQL服務器上的命令,但是SqlConnection類中有Begin/EndOpen方法嗎?我希望這是異步的,因爲它有時很慢,我不想一直阻塞線程。這有意義嗎?是否可以異步連接到SQL服務器?

回答

1

你可以,但它是非常不尋常的,它是非常有幫助的。數據庫的稀缺資源通常與連接無關,但與查詢有關。您是否懷疑您的應用程序阻止打開連接?

3

沒有BeginConnect方法,但是您可以啓動一個新的線程,只需在後臺執行,如果這可以爲​​您工作。

0

或者,要保持相同的模式,創建你想有作爲異步方法的方法簽名的委託和委託做一個BeginInvoke/EndInvoke

當然,這不會使該方法真的異步,因爲仍然有一個線程在幕後等待同步方法返回,但允許您使用正常模式,並且它使用線程池中的線程撥打電話。

0

我會完成整個命令的執行,而不僅僅是打開連接。 只要線程完成,你應該小心如何處理結果。