親スレッドがあります。要求をキューに入れ、子スレッドを初期化するのが仕事です。子スレッドは、Webサービスからデータを取得し、親スレッドにコールバックする必要があります。親スレッドはデータを処理し、別の子スレッドを開始します。問題は、コールバックメソッド内のすべてが親スレッドではなく子スレッドによって処理されることです。親スレッドでコールバックを処理する方法はありますか?言い換えれば、子スレッドはコールバックメソッドを処理せずに呼び出した直後に終了します。子スレッドからの親スレッドへのコールバック
2
A
答えて
2
あなたはそれのためのいくつかの設計が必要ですが、主なスレッドが何もしないで子が完了するのを待っている場合、私は子スレッドのポイントを見ません。一方、メインスレッドがさらなる着信要求を処理しなければならない場合、それは子スレッドからのコールバックを提供することもできません。あなたはそれを考え直さなければならないでしょう。 1つのアイデアは、あるスレッドが要求を収集してキューにプッシュすることです。子スレッドはイベントを同じキューにプッシュし、キューからのイベント(子スレッドからの要求と応答の両方)を処理する個別のスレッドが存在します。
このようなことがうまくいく場合は、是非ExecutorService
を使用してジョブのキューイングを処理してください。
0
Markoが言及しているように、ExecutorServiceにはFuture参照があり、親スレッドにジョブを実行した結果を返すことができます。
関連する問題
- 1. 子クラスから親クラスへのコールバック
- 2. ReentrantReadWriteLock親スレッドへの委任
- 3. 子スレッドからのAndroidブロードキャスト
- 4. アンドロイド:子アクティビティで親アクティビティから実行中のスレッドを使用
- 5. iOSスレッド - コールバックのベストプラクティス
- 6. スレッド終了コールバック
- 7. 親スレッド終了時に子スレッドが終了する
- 8. あるスレッドから他のスレッドへの値の取得
- 9. 親スレッド内のChildThread
- 10. 別スレッドからのapp_globalsへのアクセス
- 11. AndroidのUIスレッドと子スレッドの通信
- 12. タイムラインからスレッドへの変換
- 13. マルチプロセッシングからスレッド化への移行
- 14. どのスレッドが新しいスレッドを '親'と見なすか
- 15. スレッドIDスレッド名から
- 16. 親ウィンドウとスレッドの親和性
- 17. AS3の子供から親へのトリガーイベント
- 18. Node.js C++ addon:異なるスレッドからの複数のコールバック
- 19. Javaのスレッドからすべての子スレッドを取得するには?
- 20. Androidスレッド:スレッドからのビューを参照
- 21. Pythonのスレッドがparrentスレッドから
- 22. 複数のスレッドへ
- 23. 親クラスから子クラスプロトタイプへのアクセス
- 24. 子ページから親ページへの移動
- 25. segueからtableViewへスレッドをシリアライズ
- 26. 子スレッドへのアクセス許可/認証をコピーしますか?
- 27. Borland C++からCygwin C++へ:Tスレッドからpthreadsへ
- 28. 子スレッドはどのように親スレッドに状態/進捗状況を通知できますか?
- 29. PySideの子スレッドのタイマー
- 30. 下の例で親から子への親の属性を
私は理解しているかどうかを確認するには: スレッド: メイン - > サービス - - キューが要求し、起動 - > プロセッサ - > ビューア - - のショーのデータ要求を(Webサービスからデータを取得)を扱うユーザーと対話を画面 私は非常に多くのスレッドを持っている必要がありますか簡単に行うことができますか? – user1137146
実際にGUIスレッドを持ち、長い操作(WS呼び出し)を非GUIスレッドにオフロードしたいのですか?それはあなたが探しているものですか? –
はい。私が知りたいのは、あるスレッドでWSからデータを正常に取得すると、データを表示するために新しいスレッドを作成する必要があるか、それを行うために親スレッドに呼び出すことができるということです。私はWSスレッドにデータの表示を処理させたくありません。 – user1137146