进行数据库操作.NET Framework数据可能要会花费很长时间才能完成。在现在的情况,单线程应用程序必须阻塞其他操作,并且等待该命令完成,然后才可以继续执行它们自己的操作。
如果能够将长时间运行的操作分配给某个后台线程,就可以允许前台线程在整个操作期间保持活动状态。 例如,在 .NET Framework数据应用程序中,通过将长时间运行的操作委托给后台线程,可允许用户界面线程在操作执行时保持响应状态。
NET Framework 提供若干标准异步设计模式,.NET Framework数据开发人员可以通过这些模式充分利用后台线程并释放用户界面线程或高优先级的线程以完成其他操作。 ADO.NET 在其 SqlCommand 类中支持相同的设计模式。 具体而言,BeginExecuteNonQuery、BeginExecuteReader 和 BeginExecuteXmlReader 方法(与 EndExecuteNonQuery、EndExecuteReader 和 EndExecuteXmlReader 方法搭配)提供异步支持。#t#
说明:
异步编程是 .NET Framework 的核心功能,并且 ADO.NET 充分利用了标准设计模式。 有关可供开发人员使用的不同异步技术的更多信息,请参见使用异步方式调用同步方法。
尽管将异步技术与 .NET Framework数据功能一起使用没有什么新增的需特别注意的事项,但与 .NET Framework 的其他领域相比,很可能更多的开发人员将在 ADO.NET 中使用异步功能。 了解创建多线程应用程序的优缺点十分重要。 本节之后的那些示例指出了若干重要问题,开发人员在开发纳入了多线程功能的应用程序时将需要考虑这些问题。
只在 Microsoft Windows XP 和 Windows 2000 中支持这些方法,在 Windows 98 或 Windows ME 中不支持这些方法。.NET Framework数据代码清单04的功能是把DataSet中的Customers 数据表和DataGrid绑定起来。其他适用于复杂性数据绑定的组件实现数据绑定的方法类似此操作:
System.Data.SqlClient 可提供对从 SQL Server 7.0 版开始的 SQL Server 各个版本的访问,这些版本封装了特定于数据库的协议。该数据提供程序设计的功能与适用于 OLE DB、ODBC 和 Oracle 的 .NET Framework数据提供程序的功能类似。System.Data.SqlClient 包括一个表格格式数据流 (TDS) 分析器以直接与 SQL Server 进行通信。