クラスにソケットとイベントが含まれている場合に Dispose パターンを実装する方法は?
それはこのようなものであるべきですか?
class MyClass
{
Socket m_ListenerSocket = new Socket();
book m_Disposed=false;
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool isDisposing)
{
if (!m_Disposed)
{
if (isDisposing)
{
if (m_ListenerSocket != null)
{
m_ListenerSocket.Dispose();
innerClass.Notify -= Notify;
}
}
//finalized unmanged code here
m_Disposed = true;
}
}
~MyClass()
{
Dispose(false);
}
}
私は混乱しています...ソケットクラスは「winSockのマネージコードc#バージョン」ですか?したがって、ユーザーが dispose と呼ばれる場合 (「isDisposing IS true」) に解放する必要があります。イベント ハンドラーはどうですか?
完成したコメント セクションでは、Inptr オブジェクトのみを解放する必要がありますか? ありがとう。