다음의 IDisposable
패턴 구현에 대해 어떻게 생각하십니까?내 IDisposable 패턴 구현에 대해 어떻게 생각하십니까?
{ "동작이 소켓 이외의 개체에 작업을 시도했습니다"} System.Net.Sockets.Socket.Poll (INT32 :
public class Connection : IDisposable { private Socket _socket; public bool IsConnected() { if (_socket.Poll(1, SelectMode.SelectRead) && _socket.Available == 0) return false; return true; } public void Disconnect() { if (m_socket != null && IsConnected()) { try { _socket.Shutdown(SocketShutdown.Both); _socket.Disconnect(false); } catch (SocketException se) { System.Console.WriteLine(se.Message); } } } ~Connection() { Dispose(false); } private void Dispose(bool disposing) { if (!IsConnected()) { if (disposing) { Disconnect(); } else { AppDomain currentDomain = AppDomain.CurrentDomain; if (currentDomain.IsFinalizingForUnload() && !Environment.HasShutdownStarted) { System.Console.WriteLine("Client failed to call Destroy"); } } } } }
나는 위의 코드를 사용하여이 오류를 받았다 마이크로 초, 셀렉트 모드 모드)
당신은 어떻게 생각하십니까? 조금 확장 할 수 있었습니까 ... 당신은 무엇을 기대 했습니까? 당신이 얻은 결과를 얻을 때 당신은 왜 supprosed입니까 ... –
마무리 과정에서이 오류가 발생하지 않을 것으로 예상합니다. –
IDisposable을 구현하고 있다면 이것을 편집해야합니다. 그것을 보여줄 질문. –