3

在我的应用程序中,我正在创建和处理 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,但在第二次绑定之前我仍然需要等待(在我的实验中最多几秒钟)。

我可以添加一条Thread.Sleep或其他一些延迟指令,但这既不稳健也不优雅。

这是一个错误吗?如果没有,确保我已经可以绑定到端点的正确方法是什么?

4

1 回答 1

3

不是错误,套接字的处理是异步的,并且发生在后台线程中。您可以尝试在处理之前调用 Unbind,它可能会更快。

于 2016-07-14T09:35:25.290 回答