2011-08-28 183 views
-1

我正在创建一个线程并读取数据集并将记录写入excel。 但是,读取25条记录后,线程并未读取完整记录并在中间断开。线程抛出HRESULT 800ac472错误

 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

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

这应该使主线程等待,直到其他(一个或多个)完成。