EventHandler调用问题

时间:2010-10-24 12:41:43

标签: vb.net

我正在尝试调用以下内容,但EventHander与我的调用事件中的RasConnectionEventArgs不兼容,如何在UI线程上调用SetOverlayIcon和我的通知图标?

Public Sub watcher_Connected(ByVal sender As Object, ByVal e As RasConnectionEventArgs)

    If InvokeRequired Then
        BeginInvoke(New EventHandler(AddressOf OnRegChanged))
    Else

        TaskbarManager.Instance.SetOverlayIcon(My.Resources.LockIcon, "Connected")
        Me.NotifyIcon.ShowBalloonTip(5000, "Connected", e.Connection.EntryName, ToolTipIcon.Info)

End Sub

alt text

2 个答案:

答案 0 :(得分:2)

Jeff Winn对您的支持请求的回复:

  

RasConnectionWatcher类是   多线程,因此你只需要   设置SynchronizingObject   组件上的属性。如果你有   表单上的组件,您可以设置   它到表单实例。它会   处理线程同步   你自动设置好了。

或者这样做:

    If InvokeRequired Then
        BeginInvoke(New EventHandler(Of RasConnectionEventArgs)(AddressOf watcher_Connected), sender, e)
    Else
        '' etc...
    End If

我猜是代表类型名称。

答案 1 :(得分:0)

错过了线程同步对象:watcher.SynchronizingObject = Me

http://dotras.codeplex.com/Thread/View.aspx?ThreadId=232088