開發(fā)人員對(duì).NET Framework數(shù)據(jù)簡(jiǎn)單分析
進(jìn)行數(shù)據(jù)庫(kù)操作.NET Framework數(shù)據(jù)可能要會(huì)花費(fèi)很長(zhǎng)時(shí)間才能完成。在現(xiàn)在的情況,單線程應(yīng)用程序必須阻塞其他操作,并且等待該命令完成,然后才可以繼續(xù)執(zhí)行它們自己的操作。
如果能夠?qū)㈤L(zhǎng)時(shí)間運(yùn)行的操作分配給某個(gè)后臺(tái)線程,就可以允許前臺(tái)線程在整個(gè)操作期間保持活動(dòng)狀態(tài)。 例如,在 .NET Framework數(shù)據(jù)應(yīng)用程序中,通過將長(zhǎng)時(shí)間運(yùn)行的操作委托給后臺(tái)線程,可允許用戶界面線程在操作執(zhí)行時(shí)保持響應(yīng)狀態(tài)。
NET Framework 提供若干標(biāo)準(zhǔn)異步設(shè)計(jì)模式,.NET Framework數(shù)據(jù)開發(fā)人員可以通過這些模式充分利用后臺(tái)線程并釋放用戶界面線程或高優(yōu)先級(jí)的線程以完成其他操作。 ADO.NET 在其 SqlCommand 類中支持相同的設(shè)計(jì)模式。 具體而言,BeginExecuteNonQuery、BeginExecuteReader 和 BeginExecuteXmlReader 方法(與 EndExecuteNonQuery、EndExecuteReader 和 EndExecuteXmlReader 方法搭配)提供異步支持。#t#
說明:
異步編程是 .NET Framework 的核心功能,并且 ADO.NET 充分利用了標(biāo)準(zhǔn)設(shè)計(jì)模式。 有關(guān)可供開發(fā)人員使用的不同異步技術(shù)的更多信息,請(qǐng)參見使用異步方式調(diào)用同步方法。
盡管將異步技術(shù)與 .NET Framework數(shù)據(jù)功能一起使用沒有什么新增的需特別注意的事項(xiàng),但與 .NET Framework 的其他領(lǐng)域相比,很可能更多的開發(fā)人員將在 ADO.NET 中使用異步功能。 了解創(chuàng)建多線程應(yīng)用程序的優(yōu)缺點(diǎn)十分重要。 本節(jié)之后的那些示例指出了若干重要問題,開發(fā)人員在開發(fā)納入了多線程功能的應(yīng)用程序時(shí)將需要考慮這些問題。
只在 Microsoft Windows XP 和 Windows 2000 中支持這些方法,在 Windows 98 或 Windows ME 中不支持這些方法。.NET Framework數(shù)據(jù)代碼清單04的功能是把DataSet中的Customers 數(shù)據(jù)表和DataGrid綁定起來。其他適用于復(fù)雜性數(shù)據(jù)綁定的組件實(shí)現(xiàn)數(shù)據(jù)綁定的方法類似此操作:
System.Data.SqlClient 可提供對(duì)從 SQL Server 7.0 版開始的 SQL Server 各個(gè)版本的訪問,這些版本封裝了特定于數(shù)據(jù)庫(kù)的協(xié)議。該數(shù)據(jù)提供程序設(shè)計(jì)的功能與適用于 OLE DB、ODBC 和 Oracle 的 .NET Framework數(shù)據(jù)提供程序的功能類似。System.Data.SqlClient 包括一個(gè)表格格式數(shù)據(jù)流 (TDS) 分析器以直接與 SQL Server 進(jìn)行通信。