我注意到ByVal sender As Object
处理程序调用中有一个BackgroundWorker.RunWorkerCompleted
参数,我很好奇当BackgroundWorker完成其工作时发送者会是什么。我的直觉告诉我这将是BackgroundWorker,但似乎没有任何关于BackgroundWorker.RunWorkerCompleted Event MSDN article的明确声明来证实这一点。我也搜索过,但我似乎无法找到答案。
任何人都可以启发我吗?
答案 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!
,确认sender
是BackgroundWorker1
。
供您参考: HOW TO: Determine the Sender of an Event Without Using the Control.Name Property
我希望它以某种方式启发你。