BackgroundWorkerを最初に起動したときにRunWorkerAsync関数呼び出しで引数を渡すことはできますが、既に開始されてからデータを渡すことはできますか?または、別のスレッドからデータを渡すのを処理するために、独自の形式の同時実行性を作成する必要がありますか?BackgroundWorkerを起動した後にデータを送信する方法はありますか?
2
A
答えて
3
同期を追加し、バックグラウンドワーカーがデータを読み取る場所を用意する必要があります。
データをバックグラウンドワーカーに(簡単に)送信できません。作業者がデータを検索できる場所があれば簡単にでき、処理するデータを追加するだけで済みます。同時に(少なくとも)2つのスレッドが同時に潜在的に同時にデータにアクセスするため、その点に同期を確実に配置してください。
2
タスクの開始後に追加のデータを渡すためのBackgroundWorker API内のメカニズムはサポートされていません。
しかし、ワーカールーチンは単に別のスレッドで実行されています。 2つの任意のスレッド間でデータを渡すのと同じ方法で、そのスレッドにデータを渡すことができます。 (おそらく悪)静的変数にどのように...
- 状態変更
- 当初ワーカールーチン(適切に制御されていない場合はまだ少し悪)にまで渡されたオブジェクトの状態の変化に対する迅速な例をいくつ
これらのアプローチの同期の影響を注意深く考慮する必要があります。
0
定期的に新しいメッセージをチェックするバックグラウンドスレッドである静的キューを使用することをお勧めします。これにより、バックグラウンドスレッドは独自のペースで動作することができます。コールバックメソッドを使用して、メインスレッドに返信することができます。 Reed氏のように、ロックするための静的オブジェクトなどの同期を使用します。
関連する問題
- 1. フォームデータをC#コードに "送信"してから、C#でデータを "送信"する方法はありますか?
- 2. InfluxDBからKafkaにデータを送信する方法はありますか?
- 3. 送信後にフォームをリセットする方法はありますか?
- 4. Excel VBAでデータをソケットに送信する方法はありますか?
- 5. AzureのApp InsightにSQLデータを送信する方法はありますか?
- 6. ウェブアプリケーションがスプリングブートアプリケーションで起動した後、自動的に 'dispatcherServlet'を初期化する方法はありますか?
- 7. (AJAX)POSTデータをURLに送信し、同じURLにデータをリダイレクトする方法はありますか?
- 8. フォームを送信した後、コントロールグループの元の状態をtrueにリセットする方法はありますか?
- 9. フォームに特定のキーワードを送信した後、JavaScriptのURLにリダイレクトする方法はありますか?
- 10. redux-formを送信した後にホームページにリダイレクトする方法はありますか?
- 11. XMLHttpRequestを同じ起点にするときにクッキーを送信しない方法はありますか?
- 12. PHPMailerでメールを送信する方法はありますか?
- 13. ダイスをロールした後にこのステートメントを再起動する方法はありますか?
- 14. クラッシュ後にAndroidを再起動する動作の動作を変更する方法はありますか
- 15. Gitで新しいブランチがチェックアウトされた後にフックを起動する方法はありますか?
- 16. (YARNクライアントモードで)クラッシュした後にSparkエグゼキュータを再起動する方法はありますか?
- 17. データベースにデータを投稿した後にPHPメールを送信する方法
- 18. 再起動後に放送受信機が起動しない
- 19. フォームを送信した後にリダイレクトする方法は?
- 20. フォームを送信した後、私のダイナミックコントロールはどこにありますか?
- 21. BackgroundWorkerからアプリケーションを再起動しても問題ありませんか?
- 22. safariからiOSアプリを起動してURLを送信する方法は?
- 23. Expressで1回送信した後にデータを再送信しないようにする方法
- 24. ftpでファイルを送信した後にデータの整合性をチェックする必要がありますか?
- 25. イオンアプリケーションから別のイオンアプリケーションに通信する方法またはデータを送信する方法はありますか?
- 26. BroadcastReceiverからアクティビティにデータを送信します(アプリはバックグラウンドにあります)
- 27. テンプレートエンジンを介してクライアントに非同期データを送信する方法はありますか?
- 28. フォームを送信した後にテーブルに動的に追加する方法
- 29. UDPサーバーからUDPメッセージを送信せずにUDPサーバーに送信する方法はありますか?
- 30. 大量のデータをNode.jsからクライアントに送信する速度を上げる方法はありますか?
私が思ったことは、Skeetsさんより優れたプロデューサー/消費者の例がありますか? http://www.yoda.arachsys.com/csharp/threads/deadlocks.shtml – SwDevMan81
彼は非常にきれいで、厳しい選択肢です。場合によってはReaderWriterLockを使用することもできますが、ReaderWriterLockは読者をブロックしないので、より良いかもしれません(場合によってのみ)。参照してください:http://msdn.microsoft.com/en-us/library/system.threading.readerwriterlock.aspx –
素晴らしい、私はそれをチェックし、私はそれを使用できるかどうかを確認します。ありがとう – SwDevMan81