/// <summary> /// Add frames to the queue /// </summary> /// <param name="frame">The frame to add</param> /// <returns>A task</returns> public void Enqueue(T frame) { if (!Timer.IsRunning) { return; } try { if (FrameQueue.IsCompleted || FrameQueue.IsAddingCompleted || cancellationToken.IsCancellationRequested) { return; } FrameQueue.TryAdd(frame, -1, cancellationToken.Token); } catch (InvalidOperationException ex) { Debug.WriteLine("Failed to add to queue:" + ex.ToString()); } }