0

スレッドで実行されるインスタンス化されたクラスからメインフォームページで関数を呼び出す方法を知っている人はいますか?

Public Class Test
    Public Sub Temp()
        Try
            'Operations here
        Catch ex as Exception
            Form1.Invoke(New Form1.LogMessageDelegate(AddressOf frmIP.LogMessage), "Error Message To Be Outputted to TextBox on Main Form")
        End Try
    End Sub
End Class

関数内で文字列を返すようにしますが、例外がある場合にのみテキストボックスメッセージを呼び出します。お時間をいただきありがとうございます!

4

1 に答える 1

0
Public Class Test
 Public Event ErrorMessage(errStr As String)
 Public Sub Temp()
    Try
        'Operations here
    Catch ex as Exception
        RaisEvent ErrorMessage(ex.Message)
    End Try
 End Sub
End Class

Public Class Form1
  Private Sub form1_load() Handles Me.Load
    Dim trd As New Thread(AddressOf RunTestClass)
    trd.Start()
  Ens Sub

  Private Sub RunTestClass()
    Dim _test As New Test
    Addhandler _test.ErrorMessage, AddressOf Test_ErrorMessage
    _test.Temp()
  End Sub

  Private Sub Test_ErrorMessage(errStr As String)
    Me.Invoke(Sub()
              'run code here for UI thread
              End Sub)
  End Sub
End Class
于 2013-03-24T00:41:54.570 に答える