相互に通信し、コマンドを実行し、データをやり取りする必要がある複数のインスタンスを持つ C# プログラムがあります。現在、これは非常に面倒な WM_COPYDATA を使用して実現されています。NetNamedPipeBindings を使用して、これを WCF システムにアップグレードしたいと考えています。しかし、どのような設定を試しても、リエントラント二重通信が機能しません。
これは通常の WCF 呼び出しです。
client calls proxy.foo
server executes foo
server finishes foo
client returns from proxy.foo
そして、これは私が欲しいものです:
client calls proxy.foo
server executes foo
server calls callback.bar
client executes bar
client calls proxy.baz
server executes baz
server finishes baz
client returns from proxy.baz
client finishes bar
server returns from callback.bar
server finishes foo
client returns from proxy.foo
重要なのは、proxy.foo を呼び出すクライアント スレッドを、proxy.baz を呼び出すスレッドと同じにすることです。Windows メッセージの場合、これは当然のことです。しかし、どのような設定を試しても、このパターンを WCF で機能させることはできません。それは可能ですか?