private void Dispose(bool p) { if (processAddr != IntPtr.Zero) { NativeApi.VirtualFreeEx(hProcess, processAddr, 4096, NativeApi.MEM_RELEASE); processAddr = IntPtr.Zero; } if (hProcess != IntPtr.Zero) { NativeApi.CloseHandle(hProcess); hProcess = IntPtr.Zero; } if (_asyncHandle != null) { _asyncHandle.Dispose(); _asyncHandle = null; } #if export if (writer != null) { writer.Dispose(); writer = null; sheet = null; } #endif }
protected virtual void Dispose(bool disposing) { if (disposing) { _asyncObject.Dispose(); if (_fillThread.ThreadState == ThreadState.Suspended) { _fillThread.Resume(); _fillThread.Abort(); } } OnDisposed(EventArgs.Empty); }