私は小さな質問をしましたスレッドの後のコールバック。開始()が終了しましたか?
私はWPFアプリケーションを持っていますが、1回の方法では(WCFサービスを通じて情報を送信する)何度かかかります。私はGUIスレッド以外のスレッドでこれをやりたい
問題:
GUIは、WCFサービスと通信の新しいトランザクションマネージャを与えるデータストアに尋ねるサービス、、、へお願いします。
データストアオブジェクトには、オーナーとしてのGUIスレッドがあります。
public void MyMethod(abcdef){
//Income with the GUI thread
//Launch a thread with my action which tooks times
//update my objects with the result(Has to be done with the GUI thread)
しかし、私はXYZ.Dispatchを行うか、起動またはBeginInvokeをすることができた上でここにはGUI要素をしましたしない:
は、私は、トランザクションマネージャでは、このような何かを、したいと思います。しかし私が始めたら、私はGUIのスレッドリファレンスを知っています。問題は、私はスレッドの所有者例外を持つつもりだということです。
Iいくつかの制約をしました:私は、データストアが非GUIデータストア
- 私は
- ここに始まる呼び出しを行うためのGUIオブジェクトを持つことができない私は、この呼び出しを必要とします私は非GUIスレッド
の結果は、あなたがそれを行う方法についてのアイデアを持っていますか必要
ありがとうございました!
右!しかし、私はApplication.Current.Dispatcherでそれを行う必要がありました:) – J4N
それは依存します。 1つのスレッド(ほとんどの場合、あなたがいる)にWPF画面しか表示されていないときは、 'Application.Current.Dispatcher'を使用しても問題ありません。しかし、WPFで複数のUIスレッドを生成することは可能です。その場合、あなたのウィンドウの 'Dispatcher'を取ってそれを使って通信しなければなりません。これにより、メッセージが正しいスレッドに戻ってきます。 –