1

これは非常に素朴な質問かもしれません:

複数のサーバーとの通信に ZeroMQ を使用するクライアント アプリケーションを作成しようとしています。クライアントは、これらのサーバーに多数のリクエストを送信し、それらへの応答を取得したいと考えています (req-rep パターン)。

私が直面している問題は、ZeroMQ ソケットは、それらが作成されたスレッドでのみ使用する必要があるということです。

1 つの方法は、新しいタスクで各要求を呼び出すことです。タスク内で接続を作成し、要求を送信して応答を取得します。ただし、接続設定は非常に高価です。

2 番目の方法は、異なるスレッドでサーバーへの接続を開くことです。次に、何らかの方法でスレッドと同じコンテキストで送信ルーチンを呼び出し、結果を取得します。C# でスレッド Y からスレッド X の関数を呼び出し、スレッド X のコンテキストで実行して戻り値を取得する方法はありますか?

これは悪いアプローチかもしれないことを理解しています。オーバーヘッドをあまりかけずに、私が望むものを達成するための最良の方法は何ですか?

4

1 に答える 1