public void Dispose() { _cts.Cancel(); lock (_disposeLock) { while (_scheduledTransitions.TryDequeue(out var layoutDrawElement)) { layoutDrawElement.BitmapRepresentation.Dispose(); } foreach (var effectInfo in _currentTransitions.Values) { effectInfo.Dispose(); } _currentTransitions.Clear(); } }