线程正在抛出HRESULT 800ac472错误

时间:2011-08-28 23:32:07

标签: .net excel vba

我正在创建一个线程并读取数据集并将记录写入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

不知道它在中间断裂的确切原因。 无论如何我们需要增加时间或其他东西吗?

我认为在工作线程完成写入之前,主线程完成并中断工作线程以不继续。

1 个答案:

答案 0 :(得分:0)

您可以尝试调用t.Join()

这应该让主线程等到其他人完成。