1
私のアプリケーションでは、NetMQソケットを作成して廃棄しています。私は、そのエンドポイントにバインドされた以前のソケットの廃棄後、しばらくの間エンドポイントにバインドできないことに気付きました。最低限の例は:NetMQソケット廃棄後にエンドポイントを再利用できません
const string endpoint = "tcp://127.0.0.1:1234";
using (var publisher = new PublisherSocket())
publisher.Bind(endpoint);
using (var publisher = new PublisherSocket())
publisher.Bind(endpoint); //throws a NetMQException: "Unknown error (0xffffffff)"
Linger
オプションが0に設定されているが、私はまだ2番目のバインドの前に(私の実験では、数秒まで)を待たなければなりません。
Thread.Sleep
またはその他の遅延命令を追加できますが、これは堅牢でもエレガントでもありません。
これはバグですか?そうでない場合は、すでにエンドポイントにバインドできることを確認する正しい方法は何ですか?