共用方式為


異步操作

某些資料庫作業,例如命令執行,可能需要相當長的時間才能完成。 在這種情況下,單個線程應用程式必須封鎖其他作業,並等候命令完成,才能繼續自己的作業。 相反地,能夠將長時間執行的作業指派給背景線程,讓前景線程在整個作業中保持作用中。 例如,在 Windows 應用程式中,將長時間執行的作業委派給背景線程,可讓使用者介面線程在執行作業時保持回應。

.NET Framework 提供數種標準異步設計模式,開發人員可用來利用背景線程,並釋放使用者介面或高優先順序線程來完成其他作業。 ADO.NET 在其 SqlCommand 類別中支持這些相同的設計模式。 具體來說,BeginExecuteNonQueryBeginExecuteReaderBeginExecuteXmlReader 方法搭配 EndExecuteNonQueryEndExecuteReaderEndExecuteXmlReader 方法,提供非同步支援。

備註

異步程序設計是 .NET Framework 的核心功能,ADO.NET 充分利用標準設計模式。 如需開發人員可用之不同異步技術的詳細資訊,請參閱 以異步方式呼叫同步方法

雖然搭配 ADO.NET 功能使用異步技術並不會新增任何特殊考慮,但開發人員可能會比 .NET Framework 的其他區域使用 ADO.NET 中的異步功能更多。 請務必注意建立多線程應用程式的優點和陷阱。 本節中的範例指出在建置包含多線程功能的應用程式時,開發人員必須考慮的幾個重要問題。

本節中

使用回調的 Windows 應用程式
提供一個範例,示範如何安全地執行異步命令,並正確處理從不同線程與表單及其內容的交互。

使用等候句柄的 ASP.NET 應用程式
提供範例示範如何從 ASP.NET 頁面執行多個並行命令,並使用 Wait 句柄來管理所有命令完成時的作業。

主控台應用程式中的輪詢
提供一個範例,展示如何使用輪詢來等候控制台應用程式中異步命令執行的完成。 這項技術也適用於沒有使用者介面的類別庫或其他應用程式。

另請參閱