这是一个线程不安全的电话?

时间:2012-11-18 18:04:48

标签: vb.net multithreading thread-safety

这是我的代码

Public th As New Thread(New ThreadStart(AddressOf StartFirstPrint))
Public th4 As New Thread(New ThreadStart(AddressOf sendFirstEmail))

以下是StartFirstPrintsendFirstEmail

的代码
Public Sub StartFirstPrint()
  Do While thCont
    Try
      Dim frm As New frmPrint()
      'frm.MdiParent = Me
      frm.StartPrinting()
    Catch ex As Exception
    End Try
  Loop
End Sub

Public Sub sendFirstEmail()
  Do While thCont
    Try
      Dim frmSNDEmail As New frmEmail
      frmSNDEmail.SendEmails()
    Catch ex As Exception
    End Try
  Loop
End Sub
thCont 是一个公共布尔变量,用于指定何时购买这些线程。

如果我从frmPrint访问StartPrinting的任何控件以及来自frmEmail的{​​{1}}的任何控件,那么它是否是线程不安全的调用? SendEmailsStartPrinting的公开子版,frmPrintSendEmails的公共子版

1 个答案:

答案 0 :(得分:0)

您无法访问控件,因为您尝试从不是创建它们的线程的线程访问控件时会出现异常。它没有区别该方法在Form中 - 它仍然是从不同的线程调用。