/// <summary>
 /// Initializes the debug view.
 /// </summary>
 /// <param name="interleave">The interleave being debugged.</param>
 public ConcurrentExclusiveInterleaveDebugView(ConcurrentExclusiveInterleave interleave)
 {
     if (interleave == null)
     {
         throw new ArgumentNullException("interleave");
     }
     this._interleave = interleave;
 }
            /// <summary>
            /// Initializes the scheduler.
            /// </summary>
            /// <param name="interleave">The parent interleave.</param>
            /// <param name="tasks">The queue to store queued tasks into.</param>
            internal ConcurrentExclusiveTaskScheduler(ConcurrentExclusiveInterleave interleave, Queue <Task> tasks, int maximumConcurrencyLevel)
            {
                if (interleave == null)
                {
                    throw new ArgumentNullException("interleave");
                }
                if (tasks == null)
                {
                    throw new ArgumentNullException("tasks");
                }

                this._interleave = interleave;
                this._maximumConcurrencyLevel = maximumConcurrencyLevel;
                this.Tasks = tasks;
            }