これは、NetTcpBinding を使用した WCF 二重サービスに関するものです。
UseSynchronizationContext=false パラメーターを ServiceBehavior 属性に追加したところ、サービス側のコールバック チャネルで Close() を呼び出すときにフリーズするのを防ぐことができました。
ただし、これは、WPF ウィンドウでスレッド セーフにする必要があるということですか? 2 つの異なるスレッドで同時にボタンをクリックすると、コールバック操作が発生する可能性があるためですよね?