我有一个非常简单的线程循环
public void ClientLoop(object AContext)
{
var context = (ZMQ.Context) AContext;
Socket client = CreateServerSocket(context);
while (true)
{
try
{
Context.Poller(requestTimeout*1000, client);
}
catch (Exception e)
{
if (e.Errno == ETERM)
{
//Catch a termination error.
Debug.WriteLine("Terminated! 1");
return;
}
}
}
}
以及如下所示的处置
public void Dispose()
{
_context.Dispose();
}
创建客户端套接字时将 linger 设置为零,并且在处理程序集中有一个轮询器。该套接字也是一个请求套接字。
一旦 dispose 被调用,poller excepts 就会进入 try except 块。然而,处置后并没有像我想象的那样继续。这就是 ZGuide 所说的处理上下文和套接字破坏的方式,但是在这种情况下它似乎不起作用。
我错过了什么?