上回研究ADO.NET异步操作的相关步骤时。发现了ADO.NET异步操作存在许多的BUG,好吧,在介绍ADO.NET异步操作之前,我先来简单阐述一下ADO.NET异步操作的含义。
线程是允许程序的一部分独立于其他部分运行。线程可以在单个线程执行的同时运行多个操作,让用户感到像同时发生的一样,即使其中的某些线程出现错误,相互间的操作也不会直接受到影响。一个多线程功能的典型范例是Office中的Word拼写检查程序。
在程序开始时,执行指针位于该程序的顶部,然后移动至开始读入代码的位置。不过Word同时还将开始另一个线程并创建另一个执行指针。当键入文本时,这个新线程将检查在文档中输入的文本,并给有拼写错误的地方置于红色的波浪线标记,这个大家在打英文的时候,会常见到。说到线程就不能不谈“进程”这个词,这两个词几乎总是同时出现。Windows可以将许多程序同时保存在内存中。
并允许用户在程序之间来回切换。这种能够同时运行多个程序的能力称作多任务。一个进程中可以包含许多单独的线程。所以要注意,多任务和多线程并不是一回事。既然可能有许多线程,便可以对不同的线程指定不同的优先级。#t#
聊了半天线程,下面我们把它和ADO.NET结合起来谈。在数据库访问领域,线程可以建立具有大量数据的控件而不阻止用户与其他控件交互。.NET Framework提高了运行多个执行线程的可编程性。在深入介绍ADO.NET异步操作之前,要说明几点。
1. NET Framework用System .Threading名称空间简化生成线程的工作,但这同样是危险的。线程可能造成很难查错的异常行为,我想大家在Windows操作系统下使用多种软件时出现的令人费解的错误已经很多了。
2. 线程应用程序很难调试,但调试是非常重要的,如果使用在银行系统,医疗系统,出现异常错误,损失会很大。
3. 需要认真管理线程,多线程应用程序中的线程实际上共享相同的内存空间,在同一进程中的线程间有可能覆盖对方的重要数据。
上面的内容有所认识后,当然,我们的实例还不牵扯到上面说到得那么复杂的情况,作为初学者可以先不管那么多,我们首先介绍ADO.NET异步操作控件,System .Threading名称空间放置建立多线程应用程序的主要组件。