VB.NET - BackgroundWorker.RunWorkerCompleted的'发件人'是什么?

时间:2017-07-13 08:23:56

标签: vb.net backgroundworker

我注意到ByVal sender As Object处理程序调用中有一个BackgroundWorker.RunWorkerCompleted参数,我很好奇当BackgroundWorker完成其工作时发送者会是什么。我的直觉告诉我这将是BackgroundWorker,但似乎没有任何关于BackgroundWorker.RunWorkerCompleted Event MSDN article的明确声明来证实这一点。我也搜索过,但我似乎无法找到答案。

任何人都可以启发我吗?

1 个答案:

答案 0 :(得分:4)

你的问题让我很好奇:

根据您的问题,答案是是。

我尝试了一些测试:

我尝试的第一个是:

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

知道sender的名称是什么。

这个给我一个错误。

  

System.Reflection.TargetInvocationException

但是使用:

    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!,确认senderBackgroundWorker1

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

我希望它以某种方式启发你。