私は初めてBackgroundWorkerを使用していますが、使用方法が完全ではありません。 DoWorkハンドラから直接イベントを送信することはできますか、代わりにReportEventsを呼び出してProgressChangedハンドラからイベントを送信する必要がありますか?それはイベントを発生し、DoWork
内からUIで動作することは技術的には可能だがBackgroundWorkerのDoWorkハンドラから直接イベントを起動できますか?
1
A
答えて
1
、あなたは他のスレッドの中から(UIの相互作用、または適切なスレッド同期のためのためにInvoke()
またはBeginInvoke()
を使用してこれだけあなたと同じようにしなければならないでしょう他のクロススレッド操作)、これはBackgroundWorker
の目的を無効にします。
ReportProgress()
を呼び出すと、スレッドセーフな方法でProgressChanged
イベントが発生します。あなたは完全なパーセンテージを表すint
を渡します(実際に何かをすることはあなた次第です)。オプションで、イベントまたは進行状況に関する特定の情報を得るために必要なobject
も渡します。 ProgressChangedから、UIと対話したり、イベントを発生させることができます。
-1
これをコードに追加するだけです。
void new control.CheckForIllegelCrossPathThreads == false;
関連する問題
- 1. BackgroundWorkerのDoWorkハンドラからスローされた例外を処理する方法は?
- 2. エラーBackgroundWorkerのDoWorkイベント内のComboBoxの値を読み取る
- 3. 私の活動から直接アクティビティを起動するには
- 4. BackgroundWorkerイベントが起動しない
- 5. カスタムアクセサのイベントは、デフォルトのイベントと同じように直接起動できないのはなぜですか?
- 6. list.jsの起動イベントからウィジェットを実行できない
- 7. node.jsから.coffeeファイルを直接実行できますか?
- 8. GDI +ビットマップから直接BitBltを実行できますか?
- 9. Javascriptのリテラルオブジェクトはイベントを起動できますか?
- 10. ActionScript:As3から直接ActionScriptの学習を開始できます
- 11. Midnight Commanderのファイルをコンソールから直接開きますか?
- 12. Excel COMアドインDLL - C#から直接使用できますか?
- 13. iPhoneのシミュレータでXCodeからアプリを起動するときとシミュレータで直接起動するときの違い
- 14. UIWebView *からモバイルアプリを起動しないで*モバイルアプリを起動できますか?
- 15. SVCハンドラはどのモードで起動しますか?
- 16. IISの外部からの非同期HTTPハンドラの起動
- 17. プロジェクトが直接起動することはできません(2)
- 18. これでケンチコのデータベースから直接データを選択できますか?
- 19. 他のバックグラウンドスレッドからバックグラウンドスレッドを起動できますか? (NSObj)
- 20. 32ビットアプリケーションから64ビットのコマンドラインを起動できますか?
- 21. VB .NET FileSystemWatcherはrdp接続でイベントを起動しません
- 22. イベントXのハンドラはありますか?
- 23. KeyListenerイベントは明らかにJavaアプレットで起動しません
- 24. backgroundworker vsイベント
- 25. BackgroundWorker In Form.Loadイベント
- 26. ファイルから直接ビデオのnaturalSizeを知ることはできますか?
- 27. HTML5では、サーバーから直接 'localstorage'にデータを保存できますか?
- 28. カスタムiPhoneアプリでメールサーバーからメールを直接受信できますか?
- 29. Rails 4 - クリックイベントで複数のハンドラを起動できない
- 30. Windowsのbackgroundworkerのイベントをアンフックできませんフォーム(C#)
原則として、他のスレッドからUIスレッドに話すべきではありません。あなたはデバッグするのが非常に難しい副作用を受けるでしょう。ただしないでください。 Adamが言ったように、ReportProgressを呼び出すほうがよいでしょう。 – Tony