public void Dispose()
{
if (!iIsDisposed)
{
iIsDisposed = true;
OhNetLibraryClose(); // need to call this before disposing callbacks (below)
// which may be called during stack destruction
if(iLogOutput != null)
{
iLogOutput.Dispose();
}
if(iFatalErrorHandler != null)
{
iFatalErrorHandler.Dispose();
}
if(iAsyncBeginHandler != null)
{
iAsyncBeginHandler.Dispose();
}
if(iAsyncEndHandler != null)
{
iAsyncEndHandler.Dispose();
}
if(iAsyncErrorHandler != null)
{
iAsyncErrorHandler.Dispose();
}
if(iSubnetListChangedListener != null)
{
iSubnetListChangedListener.Dispose();
}
if(iSubnetAddedListener != null)
{
iSubnetAddedListener.Dispose();
}
if(iSubnetRemovedListener != null)
{
iSubnetRemovedListener.Dispose();
}
if(iNetworkAdapterChangedListener != null)
{
iNetworkAdapterChangedListener.Dispose();
}
}
}
}