public void Dispose() { //unsubscribe events foreach (var cacheNetworkEvent in Cache.NetworkEvents) { cacheNetworkEvent.Value.Unsubscribe(_implementation); } lock (_disposedLock) { _isDisposed = true; _eventLock.EnterAsync().ContinueWith(_ => _eventLock.Dispose()); } }
public async Task DisposeAsync() { await _semaphore.EnterAsync(); _semaphore.Dispose(); }