代码之家  ›  专栏  ›  技术社区  ›  Fredulom

VB.NET-BackgroundWorker.RunWorkerCompleted的“发送者”是什么?

  •  3
  • Fredulom  · 技术社区  · 7 年前

    ByVal sender As Object 中的参数 BackgroundWorker.RunWorkerCompleted handler调用,我很好奇当BackgroundWorker完成其工作时,发送者会是什么。我的直觉告诉我,这将是后台工作,但似乎没有任何明确的声明 BackgroundWorker.RunWorkerCompleted Event MSDN article

    有谁能启发我吗?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Aethan    7 年前

    你的问题让我好奇:

    根据你的问题,答案是 对。

    我试过一些测试:

    我试过的第一个方法是:

        Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
           MsgBox(sender.Name.ToString)
        End Sub
    

    sender .

    但使用:

        Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
            If sender Is BackgroundWorker1 Then
                MsgBox("Yeah!")
            End If
        End Sub
    

    Yeah! ,确认 发件人 BackgroundWorker1 .

    供参考: HOW TO: Determine the Sender of an Event Without Using the Control.Name Property