我正在创建一个线程并读取数据集并将记录写入excel。 但是,在阅读了25条记录之后,该主题并没有阅读完整的记录和中断。
If dsCostUsage.Tables(0).Rows.Count > 150 Then
Dim t As New Thread(AddressOf FillDataRows1)
t.Start(worksheet)
End If
Private Sub FillDataRows1(ByVal ws As Worksheet)
Dim startuprow As Integer = 7
Dim colpointer As Integer = 0
Dim rowpointer As Integer = 0
Dim str As String
While rowpointer <= dsCostUsage.Tables(0).Rows.Count - 1
While colpointer <= dsCostUsage.Tables(0).Columns.Count - 1
str = dsCostUsage.Tables(0).Rows(rowpointer)(colpointer).ToString()
DirectCast(ws.Cells(startuprow, colpointer + 1), Range).Value2 = item
colpointer += 1
End While
colpointer = 0
rowpointer += 1
startuprow += 1
End While
End sub
不知道它在中间断裂的确切原因。 无论如何我们需要增加时间或其他东西吗?
我认为在工作线程完成写入之前,主线程完成并中断工作线程以不继续。
答案 0 :(得分:0)
您可以尝试调用t.Join()
这应该让主线程等到其他人完成。