我在vb / wpf应用程序中使用Jabber.net库。我想在OnMessage事件引发时打开一个窗口,但是我收到一个错误:
调用线程必须是STA,因为许多UI组件都需要这个。
这是我的代码:
Private Sub client_OnMessage(sender As Object, msg As protocol.client.Message) Handles client.OnMessage
Debug.WriteLine("[Message Received] " & msg.From.User & ": " & msg.Body)
client.Message(msg.From, "Message Reveived: " & msg.Body)
Dim dialog As New AlertDialog(msg.From.User, "Test", msg.Body)
dialog.Show()
End Sub
这是导致错误的行:
Dim dialog As New AlertDialog(msg.From.User, "Test", msg.Body)
我不能使用后台工作程序,因为这已经在错误的主题中了,不是吗?
答案 0 :(得分:0)
将客户端对象上的InvokeControl
设置为对表单的任何控制。这将确保所有JabberNet回调在该控件的GUI线程中触发。