BackgroundWorker
コンポーネントにはIsBusy
フラグがあります。実行中RunWorkerASync
、このフラグはTrueに設定されます。終了するとFalseに変わりますかRunWorkerASync
、それともRunWorkerCompleted
終了しますか?
質問する
394 次
1 に答える
-1
IsBusy
フラグは、実行前に終了するとすぐにfalseに設定されRunWorkerASync
ますRunWorkerCompleted
。BackgroundWorker
次のような別の関数から'操作の結果を取得したいとします。
Dim MyResult = "Not Set"
Sub Foo()
DoSomeStuff()
RunWorkerASync()
'Wait for worker
While Worker.IsBusy
Wait()
End While
'Use result
'This won't work because MyResult hasn't been
'set yet by the RunWorkerCompleted handler
'Will Print "Not Set", unless, by a timing quirk,
'RunWorkerCompleted has enough time to execute
'Before using its result.
Print MyResult
End Sub
Sub RunWorkerASync()
e.Result = "Result has been set"
End Sub
Sub RunWorkerCompleted()
MyResult = e.Result 'Worker's output
End Sub
于 2012-12-07T21:21:09.657 に答える