我有一个 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 获得这种模式。甚至可能吗?