2012-11-18 66 views
-1

這裏是我的代碼這是一條線程不安全的呼叫嗎?

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

這裏是StartFirstPrint代碼和sendFirstEmail

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是一個公共布爾變量指定何時到店的線程。

如果我從StartPrintingfrmEmailSendEmails訪問任何控制frmPrint,它會是線程不安全的調用? StartPrintingfrmPrint公共Sub和SendEmailsfrmEmail

回答

0

,你不能訪問控制,因爲你會得到的,因爲試圖從不是他們從創建線程的線程訪問控制異常的公共子。它不會影響該方法在Form中的區別 - 它仍然是從不同的線程調用的。