내가 아주 간단한 스레드 루프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;
}
}
}
}
그리고 클라이언트 소켓이 생성됩니다 다음
public void Dispose()
{
_context.Dispose();
}
처럼 보이는 처분이 계속되지 않습니다 linger는 0으로 설정되고 poller는 핸들러 세트로 설정됩니다. 소켓은 요청 소켓이기도합니다.
처분이 호출되면 폴러를 제외하고 try except 블록으로 분류됩니다. 그러나 처분이 끝난 후에도 나는 그렇게 생각하지는 않았다. 이것은 ZGuide가 컨텍스트와 소켓의 파괴를 처리하는 방법이지만이 경우에는 작동하지 않는 것 같습니다.
내가 무엇을 놓쳤는가?
굉장한 작품입니다. 초기 문제는 내 고객이해야 할 때 마감하지 않고, 사용할 다음 디자인 패턴에 대한 제안을하기까지했습니다. 고맙습니다. – Jason
멋진 설명.! – hims056
닫기 소켓이 열쇠입니다. 단절만으로는 충분하지 않습니다. 소켓을 닫으면 처리가 정상적으로 수행 되나? – liang