正常情况下(画面主线程下),用MySqlClient自带的MySqlHelper.ExecuteDataset访问mysql没啥问题,但是查询时间长,我想加个进度条,这就用到多线程了,我想把查询写到新开的线程中,可是有错误,每次报的错误也不一样,大致是:'System.FormatException'的句柄没有实例化在 mscorlib.dll中发生了。或者是'System.IndexOutOfRangeException' 的句柄没有实例化在 mscorlib.dll中发生了。
代码
Dim thread As New Threading.Thread(AddressOf ExportExl)
thread.SetApartmentState(Threading.ApartmentState.STA)
thread.Start()
Private Sub ExportExl()
数据库访问代码。。。。
retDs = MySqlHelper.ExecuteDataset(dbConn, strSql)
。。。
End Sub
我的理解可能是mscorlib.dll类中用了线程不安全的函数了。
有没有高手知道这样的问题怎么办呀?还是我的线程哪用的不对。。求高手帮助。不胜感激。最好用成功的代码。。