线程并发,线程阻塞,在我们的程序中线程是很重要的一块,要考虑的因素也很多,这里我们就VB.NET线程访问数据库来详细的分析一下。线程是操作系统分配处理器时间的基本单元,线程可以在单个执行线程执行的同时运行多个活动,支持抢先多任务处理的操作系统可以创建多个线程并通过时间片轮转的方式使它们同时运行。
在需要良好用户交互的应用以及与网络和数据库进行通讯的应用中,使用多线程能提供良好的交互体验,能对用户的要求做出快速的反应。本文主要介绍.NET中的线程在数据库编程中的具体应用(用VB.NET实现)。
#T#创建VB.NET线程访问数据库
数据库应用中,特别是网络数据库访问,因为可能要访问的数据量较大,因此需要比较长的时间来得到结果,而一个良好的程序应具有良好的交互性,在访问数据库时应允许你的应用程序对用户的活动尽快做出响应,以提供丰富的用户体验。利用多线程机制可以让需要大量时间的操作在后台运行以快速响应用户的活动。下面的代码访问数据库并返回数据表:
- Private sub GetDataFromDataBase()
- …
- m_table.Clear()
- m_sqlDataAdapter.Fill(m_table)
- …
- End Sub
创建Thread对象的新实例,需创建新的线程代理.ThreadStart线程代理可以指定生成线程时要执行的方法名,但线程代理并不实际运行线程.创建ThreadStart对象时,需指定线程开始执行时要运行的方法的指针,该方法不能接受任何参数。下面我们将上面的代码分配给一个线程处理,并且启动它:
- Dim myThreadStart as ThreadStart =New ThreadStart(AddressOf GetDataFromDataBase)
- Dim myThread as Thread=New Thread(myThreadStart)
- myThread.Start()
这样当进行VB.NET线程访问数据库时,用户可以继续进行处理。