3

BackgroundWorker DoWorkからに値を渡すにはどうすればよいBackgroundWorker Completedですか? BackgroundWorker Completedによって呼び出されないのでBackgroundWorker DoWork、 a を宣言する以外にこれを行う方法がわかりませんpublic variable。本質的に、変数 fromBackgroundWorker Completedを介して受け入れたいと思います。ByValBackgroundWorker DoWork

4

1 に答える 1

3

関数を宣言するときDoWorkは、いくつかの便利な引数が組み込まれていることに注意してください。

Private Sub backgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) _
                                                  Handles backgroundWorker1.DoWork

RunWorkerCompletedまた、 handlerの同様の引数にも注意してください。

Private Sub backgroundWorker1_RunWorkerCompleted(ByVal sender As Object, _
                                          ByVal e As RunWorkerCompletedEventArgs) _
                                       Handles backgroundWorker1.RunWorkerCompleted

重要なことに、 にアクセスe.Resultできます。これは、 内の任意のオブジェクトにすることができます。メソッドが完了するRunWorkerCompletedEventArgsと、後者は前者に渡されるため、ワーカー メソッドの最後に set :e.ResultDoWorkEventArgs

e.Result = myResult

次に、RunWorkerCompletedハンドラーで次の方法でもアクセスできます。

if e.Result = (whatever) then 
    .... etc

参照 :

RunWorkerCompletedEventArgs.Result プロパティ : MSDN

DoWorkEventArgs.Result プロパティ : MSDN

于 2013-07-30T00:46:33.407 に答える