你在开发程序的时候最不好弄的就是线程这个问题,你要考虑并发和多种时候的情况一起访问数据库。VB.NET线程要执行的方法不能接受任何参数,如果要传入方法特定条件,可以将方法放在一个类中,在类中定义类的属性,需要时可以设置类的属性,然后用方法调用这些属性以实现方法参数类似的功能。同时,因为生成的线程在主应用程序线程之外运行,.net Framework提供线程隔离,这时如果要用新的VB.NET线程操纵主应用程序中的对象便不被允许。***的办法也是将线程要访问的对象包装在类中。下面我们创建一个类,封装属性和数据库访问方法:
- Public Class dealDataBase
- Private m_sqlDataAdapter As SqlDataAdapter
- Private m_table As DataTable
- Public Property setDataAdapter() As SqlDataAdapter
- Get
- setDataAdapter=m_sqlDataAdapter
- End Get
- Set(ByVal value As SqlDataAdapter)
- m_sqlDataAdapter=value
- End Set
- End Property
- Public Property setDataTable() As DataTable
- Get
- setDataTable=m_table
- End Get
- Set(ByVal value As DataTable)
- m_DataTable=value
- End Set
- End Property
- Public sub GetDataFromDataBase()
- …
- m_table.Clear()
- m_sqlDataAdapter.Fill(m_table)
- …
- End Sub
- End Class
下面是创建VB.NET线程并运行线程的代码:
- Dim myDB As New dealDataBase ()
- Dim myThreadStart as ThreadStart
- Dim myThread as Thread
- myDB.setDataAdapter=Me.DataAdapter1 'DataAdapter1是本窗体内定义的数据适配器
- myDB.setDataTable=Me.DataTable1 'DataTable1是本窗体定义的数据表
- …
- myThreadStart=New ThreadStart(AddressOf myDB.GetDataFromDataBase)
- myThread=New Thread(myThreadStart)
- myThread.Start()
- …
- End Sub
【编辑推荐】