Vb.net 多线程查询代码引发空异常

Vb.net 多线程查询代码引发空异常,vb.net,multithreading,Vb.net,Multithreading,下面的代码有什么问题?我几乎没有线程方面的经验,我对msdn教程的理解有限,我可能误解了t1和t2声明,即位的地址,我将能够运行多线程方法(这是最好的方法吗?) 这不管用。前面的代码对于存在的方法很好地工作。标记的错误为 系统null异常,值不能为零 哦,还有,它正在读一个.txt文件,所以不要担心它是线程不安全的东西,我不这么认为 Private Sub Rreader(path As String) Dim reader1 As New RReaderClass Dim

下面的代码有什么问题?我几乎没有线程方面的经验,我对msdn教程的理解有限,我可能误解了t1和t2声明,即位的地址,我将能够运行多线程方法(这是最好的方法吗?)

这不管用。前面的代码对于存在的方法很好地工作。标记的错误为

系统null异常,值不能为零

哦,还有,它正在读一个.txt文件,所以不要担心它是线程不安全的东西,我不这么认为

Private Sub Rreader(path As String)
  Dim reader1 As New RReaderClass       
  Dim t1 As New System.Threading.Thread(AddressOf reader1.stage1)     
  Dim t2 As New System.Threading.Thread(AddressOf reader1.stage2)
  Try
    t1.Start()
    t2.Start()
  Catch ex As Exception
    MessageBox.Show(ex.toString)
  End Try
End Sub

Private Sub stage1()
  Try
    a()
    b()
    c()
  Catch ex As Exception
    MessageBox.Show(ex.toString)
  End Try
End Sub

Private Sub stage2()
  ….

哪一行出现空引用异常?你确定错误不在你没有提供代码的a、b或c方法中吗?是的,我现在认为是(做了一个小测试),抱歉,我的第一个想法是线程,因为我在那里没有经验。但之前代码运行良好?我所做的就是尝试多线程处理它,并将其拆分为两个方法?所有这些方法都包含一些基本的linq。但是空值的东西似乎来自于方法…:-这真让人尴尬。抱歉,忘了我在这里…创建单独的方法会丢失一个变量的可见性,这会把整个事情搞砸。无论如何谢谢你的帮助,詹姆斯。不,我错了。都很好。如果我在线程之外运行该方法,它可以正常工作。如果它不工作?怎么解释呢?