FainSheeg 2017-10-25 02:24 采纳率: 100%
浏览 1122
已采纳

.net多线程编程,使用委托来更新NotifyIcon,总是会在托盘里多出一个图标来。

.net 多线程编程中,在子线程中使用委托来更新主线程中的NotifyIcon,让它弹出气球提示。总是会在托盘里多出一个图标来。另外,代码中除了在创建委托实现时使用了NEW以外,其他地方没使用过。
请大神解释一下原因,或者提供其他方法,用来在多线程环境下跨线程更新NotifyIcon。要不会多出图标来的。

  • 写回答

2条回答 默认 最新

  • FainSheeg 2017-10-25 02:44
    关注

    Public Class Main
    Delegate Sub UpdateUI(title As String, tips As String, tspan As Integer)
    Public Sub ShowBallTips(title As String, tips As String, tspan As Integer) '提示气球
    If Me.InvokeRequired Then
    Dim upui As New UpdateUI(AddressOf ShowBallTips)
    Me.Invoke(upui, title, tips, tspan)
    Else
    Me.NotifyIcon1.BalloonTipTitle = title
    Me.NotifyIcon1.BalloonTipText = tips
    Me.NotifyIcon1.ShowBalloonTip(tspan)
    End If
    End Sub
    End Class
    这是委托的代码,调用的时候直接在另外一个线程的代码中调用ShowBallTips("a","b",5000)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?