小编Jas*_*son的帖子

ZeroMQ上下文破坏导致轮询器到ETERM但不继续

我有一个非常简单的线程循环

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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且处理看起来如下

public void Dispose()
{
    _context.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

创建客户端套接字时将linger设置为零,并在处理程序集中设置轮询器.套接字也是请求套接字.

一旦调用dispose,轮询器就会排除并进入try除块之外.然而,在处置后没有继续像我想的那样.这就是ZGuide如何处理上下文和套接字的破坏,但在这种情况下它似乎不起作用.

我错过了什么?

c# dispose zeromq

2
推荐指数
1
解决办法
995
查看次数

标签 统计

c# ×1

dispose ×1

zeromq ×1