/// <summary> /// Destroys object /// </summary> /// <param name="disposing">Flag, allowing destruction of /// managed objects contained in fields of class</param> private void Dispose(bool disposing) { if (_disposedFlag.Set()) { if (disposing) { if (_dispatcher != null) { _dispatcher.Invoke(DisposeUnmanagedResources); _dispatcher.Dispose(); _dispatcher = null; } if (_typeMapper != null) { _typeMapper.Dispose(); _typeMapper = null; } _promiseContinuationCallback = null; } else { DisposeUnmanagedResources(); } } }
private bool disposedValue = false; // To detect redundant calls protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { typeMapper.Dispose(); } var _programToDispose = programs.ToList(); foreach (var program in _programToDispose) { program.Dispose(); } runtime.Dispose(); disposedValue = true; } }
public void Dispose() { typeMapper.Dispose(); context.Release(); runtime.Dispose(); }