如何将值从BackgroundWorker DoWork传递给BackgroundWorker Completed?由于BackgroundWorker Completed不是由BackgroundWorker DoWork调用的,所以除了声明一个public variable之外,我不知道如何做到这一点。本质上,我希望BackgroundWorker Completed通过ByVal接受BackgroundWorker DoWork中的一个变量。
发布于 2013-07-30 00:46:33
当您声明您的DoWork函数时,请注意它内置了一些方便的参数:
Private Sub backgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) _
Handles backgroundWorker1.DoWork还请注意RunWorkerCompleted处理程序的类似参数:
Private Sub backgroundWorker1_RunWorkerCompleted(ByVal sender As Object, _
ByVal e As RunWorkerCompletedEventArgs) _
Handles backgroundWorker1.RunWorkerCompleted至关重要的是,您可以访问e.Result (可以是RunWorkerCompletedEventArgs中的任何对象),也可以访问DoWorkEventArgs中的e.Result --后者是在方法完成时传递给前者的,因此在worker方法的末尾设置如下:
e.Result = myResult然后,在您的RunWorkerCompleted处理程序中,您还可以通过以下方式访问它:
if e.Result = (whatever) then
.... etc参考:
RunWorkerCompletedEventArgs.Result属性:
DoWorkEventArgs.Result属性:
https://stackoverflow.com/questions/17936438
复制相似问题