スレッドを使用してメールを送信します。メールが予算の形で送信されたときにユーザーに知らせるために、ラベルにテキストを書き込む必要があります。
' Option Strict はオフです
クラスフォームの関数。
Public Sub ChangeLblText(ByVal msg As String) ' LblIconos.modifiers = public (In form)
lblIconos.Text = msg
End Sub
新しいスレッドの宣言されたクラス。(グローバル宣言)
Public TasksPresu As New TasksClassPresu()
フォーム「Presupuestos」のアイコンがスレッドをトリガーします
Dim Thread1 As New System.Threading.Thread(AddressOf TasksPresu.TaskEmail)
Thread1.Start()
クラス トリガーされたスレッド
Public Class TasksClassPresu
Sub TaskEmail()
'trigger label change?
Presupuestos.ChangeLblText("Test")
end sub
End Class
Invoke メソッド、デリゲート関数、フォームのアドレスを作業なしで試してみましたが、何かを残したのかもしれません。
私が使用したデリゲートの例:
Form Presupuestos クラス:
Public Delegate Sub LabelDelegate(ByVal Msg As String)
グローバルモジュールでほとんどの変数を宣言する
Public Llamada As Presupuestos.LabelDelegate
クラスフォームの関数。
Public Sub ChangeLblText(ByVal msg As String) ' LblIconos.modifiers = public (In form)
lblIconos.Text = msg
End Sub
クラストリガー
Public Class TasksClassPresu
Sub TaskEmail()
Llamada.Invoke("prueba")
End Sub
End Class
これを実行すると、次の行でエラーが発生します。