循环多线程调用步骤,方法里的对象值获取不到
循环多线程调用方法,方法里的对象值获取不到
最近做一个小程序,循环生成Excel,当数据量大的时候,程序运行速度非常慢,所以客户要求改用多线程来实现生成Excel。我改进的代码如下:
''' <summary>
''' sdfをcsv変換する
''' </summary>
Private Sub SdfToCsv()
Dim confSheet As ConfigureSheet
Dim sheetCount, sheetFMT As Integer
Dim excelConfig, excelFMT As New ExcelLib
Dim dataLst As List(Of List(Of String))
Dim outFile As String = ""
Dim folder As String
Dim msg As String
Dim paras() As String
Dim changeFlg As Boolean = False
Dim i As Integer = 0
Try
'csvデータ削除
folder = IO.Path.Combine(AppPath, "csv")
Utility.DeleteFileFolder(folder)
'configure.xlsの読み込み
sheetCount = excelConfig.OpenExcel(txtConfig.Text, False, False)
sheetFMT = excelFMT.OpenExcel(eCRF_FMTFile, False, False)
If sheetCount = 0 OrElse sheetFMT = 0 Then
MessageLib.WriteRichTextBox(My.Resources.M025, MessageType.IsMessage, False, rtbMessage)
Exit Try
End If
'プログレスバー設定
Me.ProgressBar1.Maximum = sheetCount
Me.ProgressBar1.Value = 0
Me.ProgressBar1.Visible = True
For i = 1 To sheetCount
'キャンセル
If canceled = True Then
Me.ProgressBar1.Visible = False
Exit Try
End If
'シートの読み込み
最近做一个小程序,循环生成Excel,当数据量大的时候,程序运行速度非常慢,所以客户要求改用多线程来实现生成Excel。我改进的代码如下:
''' <summary>
''' sdfをcsv変換する
''' </summary>
Private Sub SdfToCsv()
Dim confSheet As ConfigureSheet
Dim sheetCount, sheetFMT As Integer
Dim excelConfig, excelFMT As New ExcelLib
Dim dataLst As List(Of List(Of String))
Dim outFile As String = ""
Dim folder As String
Dim msg As String
Dim paras() As String
Dim changeFlg As Boolean = False
Dim i As Integer = 0
Try
'csvデータ削除
folder = IO.Path.Combine(AppPath, "csv")
Utility.DeleteFileFolder(folder)
'configure.xlsの読み込み
sheetCount = excelConfig.OpenExcel(txtConfig.Text, False, False)
sheetFMT = excelFMT.OpenExcel(eCRF_FMTFile, False, False)
If sheetCount = 0 OrElse sheetFMT = 0 Then
MessageLib.WriteRichTextBox(My.Resources.M025, MessageType.IsMessage, False, rtbMessage)
Exit Try
End If
'プログレスバー設定
Me.ProgressBar1.Maximum = sheetCount
Me.ProgressBar1.Value = 0
Me.ProgressBar1.Visible = True
For i = 1 To sheetCount
'キャンセル
If canceled = True Then
Me.ProgressBar1.Visible = False
Exit Try
End If
'シートの読み込み