<?xml version="1.0"?>
<doc>
    <assembly>
        <name>System.Threading.Tasks.Dataflow</name>
    </assembly>
    <members>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock">
            <summary>
            Provides a set of static (Shared in Visual Basic) methods for working with dataflow blocks.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.LinkTo``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.Tasks.Dataflow.ITargetBlock{``0})">
            <summary>Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/>.</summary>
            <param name="source">The source from which to link.</param>
            <param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> to which to connect the source.</param>
            <returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.LinkTo``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.Tasks.Dataflow.ITargetBlock{``0},System.Predicate{``0})">
            <summary>Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> using the specified filter.</summary>
            <param name="source">The source from which to link.</param>
            <param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> to which to connect the source.</param>
            <param name="predicate">The filter a message must pass in order for it to propagate from the source to the target.</param>
            <returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="predicate"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.LinkTo``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.Tasks.Dataflow.ITargetBlock{``0},System.Threading.Tasks.Dataflow.DataflowLinkOptions,System.Predicate{``0})">
            <summary>Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> using the specified filter.</summary>
            <param name="source">The source from which to link.</param>
            <param name="target">The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> to which to connect the source.</param>
            <param name="predicate">The filter a message must pass in order for it to propagate from the source to the target.</param>
            <param name="linkOptions">The options to use to configure the link.</param>
            <returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="linkOptions"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="predicate"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1">
            <summary>Provides a synchronous filter for use in filtered LinkTos.</summary>
            <typeparam name="T">Specifies the type of data being filtered.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1._source">
            <summary>The source connected with this filter.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1._target">
            <summary>The target with which this block is associated.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1._userProvidedPredicate">
            <summary>The predicate provided by the user.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.#ctor(System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Predicate{`0})">
            <summary>Initializes the filter passthrough.</summary>
            <param name="source">The source connected to this filter.</param>
            <param name="target">The target to which filtered messages should be passed.</param>
            <param name="predicate">The predicate to run for each message.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.RunPredicate(`0)">
            <summary>Runs the user-provided predicate over an item in the correct execution context.</summary>
            <param name="item">The item to evaluate.</param>
            <returns>true if the item passed the filter; otherwise, false.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.PredicateContextState">
            <summary>Manually closes over state necessary in FilteredLinkPropagator.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.PredicateContextState.Input">
            <summary>The input to be filtered.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.PredicateContextState.Predicate">
            <summary>The predicate function.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.PredicateContextState.Output">
            <summary>The result of the filtering operation.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.PredicateContextState.#ctor(`0,System.Predicate{`0})">
            <summary>Initializes the predicate state.</summary>
            <param name="input">The input to be filtered.</param>
            <param name="predicate">The predicate function.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.PredicateContextState.Run">
            <summary>Runs the predicate function over the input and stores the result into the output.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.DebugView">
            <summary>Provides a debugger type proxy for a filter.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.DebugView._filter">
            <summary>The filter.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="filter">The filter to view.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.FilteredLinkPropagator`1.DebugView.LinkedTarget">
            <summary>The linked target for this filter.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Post``1(System.Threading.Tasks.Dataflow.ITargetBlock{``0},``0)">
            <summary>Posts an item to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/>.</summary>
            <typeparam name="TInput">Specifies the type of data accepted by the target block.</typeparam>
            <param name="target">The target block.</param>
            <param name="item">The item being offered to the target.</param>
            <returns>true if the item was accepted by the target block; otherwise, false.</returns>
            <remarks>
            This method will return once the target block has decided to accept or decline the item,
            but unless otherwise dictated by special semantics of the target block, it does not wait
            for the item to actually be processed (for example, <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/>
            will return from Post as soon as it has stored the posted item into its input queue).  From the perspective
            of the block's processing, Post is asynchronous. For target blocks that support postponing offered messages, 
            or for blocks that may do more processing in their Post implementation, consider using
             <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsync">SendAsync</see>, 
            which will return immediately and will enable the target to postpone the posted message and later consume it 
            after SendAsync returns.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsync``1(System.Threading.Tasks.Dataflow.ITargetBlock{``0},``0)">
            <summary>Asynchronously offers a message to the target message block, allowing for postponement.</summary>
            <typeparam name="TInput">Specifies the type of the data to post to the target.</typeparam>
            <param name="target">The target to which to post the data.</param>
            <param name="item">The item being offered to the target.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous send.  If the target
            accepts and consumes the offered element during the call to SendAsync, upon return
            from the call the resulting <see cref="T:System.Threading.Tasks.Task`1"/> will be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> 
            property will return true.  If the target declines the offered element during the call, upon return from the call the resulting <see cref="T:System.Threading.Tasks.Task`1"/> will
            be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> property will return false. If the target
            postpones the offered element, the element will be buffered until such time that the target consumes or releases it, at which
            point the Task will complete, with its <see cref="P:System.Threading.Tasks.Task`1.Result"/> indicating whether the message was consumed.  If the target
            never attempts to consume or release the message, the returned task will never complete.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsync``1(System.Threading.Tasks.Dataflow.ITargetBlock{``0},``0,System.Threading.CancellationToken)">
            <summary>Asynchronously offers a message to the target message block, allowing for postponement.</summary>
            <typeparam name="TInput">Specifies the type of the data to post to the target.</typeparam>
            <param name="target">The target to which to post the data.</param>
            <param name="item">The item being offered to the target.</param>
            <param name="cancellationToken">The cancellation token with which to request cancellation of the send operation.</param>
            <returns>
            <para>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous send.  If the target
            accepts and consumes the offered element during the call to SendAsync, upon return
            from the call the resulting <see cref="T:System.Threading.Tasks.Task`1"/> will be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> 
            property will return true.  If the target declines the offered element during the call, upon return from the call the resulting <see cref="T:System.Threading.Tasks.Task`1"/> will
            be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> property will return false. If the target
            postpones the offered element, the element will be buffered until such time that the target consumes or releases it, at which
            point the Task will complete, with its <see cref="P:System.Threading.Tasks.Task`1.Result"/> indicating whether the message was consumed.  If the target
            never attempts to consume or release the message, the returned task will never complete.
            </para>
            <para>
            If cancellation is requested before the target has successfully consumed the sent data, 
            the returned task will complete in the Canceled state and the data will no longer be available to the target.
            </para>
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="target"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1">
            <summary>
            Provides a source used by SendAsync that will buffer a single message and signal when it's been accepted or declined.
            </summary>
            <remarks>This source must only be passed to a single target, and must only be used once.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1._target">
            <summary>The target to offer to.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1._messageValue">
            <summary>The buffered message.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1._cancellationToken">
            <summary>CancellationToken used to cancel the send.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1._cancellationRegistration">
            <summary>Registration with the cancellation token.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1._cancellationState">
            <summary>The cancellation/completion state of the source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CANCELLATION_STATE_NONE">
            <summary>No cancellation registration is used.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CANCELLATION_STATE_REGISTERED">
            <summary>A cancellation token has been registered.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CANCELLATION_STATE_RESERVED">
            <summary>The message has been reserved. Only used if a cancellation token is in play.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CANCELLATION_STATE_COMPLETING">
            <summary>Completion is now in progress. Only used if a cancellation token is in play.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.#ctor(System.Threading.Tasks.Dataflow.ITargetBlock{`0},`0,System.Threading.CancellationToken)">
            <summary>Initializes the source.</summary>
            <param name="target">The target to offer to.</param>
            <param name="messageValue">The message to offer and buffer.</param>
            <param name="cancellationToken">The cancellation token with which to cancel the send.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.Finalize">
            <summary>Finalizer that completes the returned task if all references to this source are dropped.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CompleteAsAccepted(System.Boolean)">
            <summary>Completes the source in an "Accepted" state.</summary>
            <param name="runAsync">true to accept asynchronously; false to accept synchronously.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CompleteAsDeclined(System.Boolean)">
            <summary>Completes the source in an "Declined" state.</summary>
            <param name="runAsync">true to decline asynchronously; false to decline synchronously.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CompleteAsFaulted(System.Exception,System.Boolean)">
            <summary>Completes the source in faulted state.</summary>
            <param name="exception">The exception with which to fault.</param>
            <param name="runAsync">true to fault asynchronously; false to fault synchronously.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CompleteAsCanceled(System.Boolean)">
            <summary>Completes the source in canceled state.</summary>
            <param name="runAsync">true to fault asynchronously; false to fault synchronously.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.RunCompletionAction(System.Action{System.Object},System.Object,System.Boolean)">
            <summary>Executes a completion action.</summary>
            <param name="completionAction">The action to execute, passed the state.</param>
            <param name="completionActionState">The state to pass into the delegate.</param>
            <param name="runAsync">true to execute the action asynchronously; false to execute it synchronously.</param>
            <remarks>
            async should be true if this is being called on a path that has the target on the stack, e.g.
            the target is calling to ConsumeMessage.  We don't want to block the target indefinitely
            with any synchronous continuations off of the returned send async task.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.OfferToTargetAsync">
            <summary>Offers the message to the target asynchronously.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1._cancellationCallback">
            <summary>Cached delegate used to cancel a send in response to a cancellation request.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.CancellationHandler(System.Object)">
            <summary>Attempts to cancel the source passed as state in response to a cancellation request.</summary>
            <param name="state">
            A weak reference to the SendAsyncSource.  A weak reference is used to prevent the source
            from being rooted in a long-lived token.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.OfferToTarget">
            <summary>Offers the message to the target synchronously.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>Called by the target to consume the buffered message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>Called by the target to reserve the buffered message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>Called by the target to release a reservation on the buffered message.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebugView">
            <summary>Provides a debugger type proxy for the source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebugView._source">
            <summary>The source.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="source">The source to view.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebugView.Target">
            <summary>The target to which we're linked.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebugView.Message">
            <summary>The message buffered by the source.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsyncSource`1.DebugView.Completion">
            <summary>The Task represented the posting of the message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TryReceive``1(System.Threading.Tasks.Dataflow.IReceivableSourceBlock{``0},``0@)">
            <summary>
            Attempts to synchronously receive an item from the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/>.
            </summary>
            <param name="source">The source from which to receive.</param>
            <param name="item">The item received from the source.</param>
            <returns>true if an item could be received; otherwise, false.</returns>
            <remarks>
            This method does not wait until the source has an item to provide.
            It will return whether or not an element was available.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveAsync``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0})">
            <summary>Asynchronously receives a value from the specified source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to asynchronously receive.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous receive operation.  When an item is successfully received from the source,
            the returned task will be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> will return the received item.  If an item cannot be retrieved,
            because the source is empty and completed, the returned task will be canceled.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveAsync``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.CancellationToken)">
            <summary>Asynchronously receives a value from the specified source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to asynchronously receive.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> which may be used to cancel the receive operation.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous receive operation.  When an item is successfully received from the source,
            the returned task will be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> will return the received item.  If an item cannot be retrieved,
            either because cancellation is requested or the source is empty and completed, the returned task will be canceled.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveAsync``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.TimeSpan)">
            <summary>Asynchronously receives a value from the specified source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to asynchronously receive.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous receive operation.  When an item is successfully received from the source,
            the returned task will be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> will return the received item.  If an item cannot be retrieved,
            either because the timeout expires or the source is empty and completed, the returned task will be canceled.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than <see cref="F:System.Int32.MaxValue"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveAsync``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.TimeSpan,System.Threading.CancellationToken)">
            <summary>Asynchronously receives a value from the specified source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to asynchronously receive.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> which may be used to cancel the receive operation.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous receive operation.  When an item is successfully received from the source,
            the returned task will be completed and its <see cref="P:System.Threading.Tasks.Task`1.Result">Result</see> will return the received item.  If an item cannot be retrieved,
            either because the timeout expires, cancellation is requested, or the source is empty and completed, the returned task will be canceled.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than <see cref="F:System.Int32.MaxValue"/>.
            </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Receive``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0})">
            <summary>Synchronously receives an item from the source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to receive.</param>
            <returns>The received item.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.InvalidOperationException">No item could be received from the source.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Receive``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.CancellationToken)">
            <summary>Synchronously receives an item from the source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to receive.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> which may be used to cancel the receive operation.</param>
            <returns>The received item.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.InvalidOperationException">No item could be received from the source.</exception>
            <exception cref="T:System.OperationCanceledException">The operation was canceled before an item was received from the source.</exception>
            <remarks>
            If the source successfully offered an item that was received by this operation, it will be returned, even if a concurrent cancellation request occurs.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Receive``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.TimeSpan)">
            <summary>Synchronously receives an item from the source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to receive.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
            <returns>The received item.</returns>
            <exception cref="T:System.ArgumentOutOfRangeException">
            timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than <see cref="F:System.Int32.MaxValue"/>.
            </exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.InvalidOperationException">No item could be received from the source.</exception>
            <exception cref="T:System.TimeoutException">The specified timeout expired before an item was received from the source.</exception>
            <remarks>
            If the source successfully offered an item that was received by this operation, it will be returned, even if a concurrent timeout occurs.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Receive``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.TimeSpan,System.Threading.CancellationToken)">
            <summary>Synchronously receives an item from the source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to receive.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> which may be used to cancel the receive operation.</param>
            <returns>The received item.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            timeout is a negative number other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than <see cref="F:System.Int32.MaxValue"/>.
            </exception>
            <exception cref="T:System.InvalidOperationException">No item could be received from the source.</exception>
            <exception cref="T:System.TimeoutException">The specified timeout expired before an item was received from the source.</exception>
            <exception cref="T:System.OperationCanceledException">The operation was canceled before an item was received from the source.</exception>
            <remarks>
            If the source successfully offered an item that was received by this operation, it will be returned, even if a concurrent timeout or cancellation request occurs.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCore``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Boolean,System.TimeSpan,System.Threading.CancellationToken)">
            <summary>Receives an item from the source.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to receive.</param>
            <param name="attemptTryReceive">Whether to first attempt using TryReceive to get a value from the source.</param>
            <param name="timeout">A <see cref="T:System.TimeSpan"/> that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> which may be used to cancel the receive operation.</param>
            <returns>A Task for the receive operation.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason">
            <summary>The reason for a ReceiveCoreByLinking call failing.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason.Success">
            <summary>The Receive operation completed successfully, obtaining a value from the source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason.Timer">
            <summary>The timer expired before a value could be received.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason.Cancellation">
            <summary>The cancellation token had cancellation requested before a value could be received.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason.SourceCompletion">
            <summary>The source completed before a value could be received.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason.SourceProtocolError">
            <summary>An error occurred while linking up the target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason.ErrorDuringCleanup">
            <summary>An error during cleanup after completion for another reason.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock._cancelCts">
            <summary>Cancels a CancellationTokenSource passed as the object state argument.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinking``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Int32,System.Threading.CancellationToken)">
            <summary>Receives an item from the source by linking a temporary target from it.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source from which to receive.</param>
            <param name="millisecondsTimeout">The number of milliseconds to wait, or -1 to wait indefinitely.</param>
            <param name="cancellationToken">The <see cref="T:System.Threading.CancellationToken"/> which may be used to cancel the receive operation.</param>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1">
            <summary>Provides a TaskCompletionSource that is also a dataflow target for use in ReceiveCore.</summary>
            <typeparam name="T">Specifies the type of data offered to the target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.CachedLinkingTimerCallback">
            <summary>Cached delegate used in ReceiveCoreByLinking on the created timer.  Passed the ReceiveTarget as the argument.</summary>
            <remarks>The C# compiler will not cache this delegate by default due to it being a generic method on a non-generic class.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.CachedLinkingCancellationCallback">
            <summary>Cached delegate used in ReceiveCoreByLinking on the cancellation token. Passed the ReceiveTarget as the state argument.</summary>
            <remarks>The C# compiler will not cache this delegate by default due to it being a generic method on a non-generic class.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._receivedValue">
            <summary>The received value if we accepted a value from the source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._cts">
            <summary>The cancellation token source representing both external and internal cancellation.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._cleanupReserved">
            <summary>Indicates a code path is already on route to complete the target. 0 is false, 1 is true.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._externalCancellationToken">
            <summary>The external token that cancels the internal token.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._regFromExternalCancellationToken">
            <summary>The registration on the external token that cancels the internal token.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._timer">
            <summary>The timer that fires when the timeout has been exceeded.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._unlink">
            <summary>The unlinker from removing this target from the source from which we're receiving.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1._receivedException">
            <summary>The received exception if an error occurred.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.IncomingLock">
            <summary>Gets the sync obj used to synchronize all activity on this target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.#ctor">
            <summary>Initializes the target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>Offers a message to be used to complete the TaskCompletionSource.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.TryCleanupAndComplete(System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason)">
            <summary>
            Attempts to reserve the right to cleanup and complete, and if successfully, 
            continues to cleanup and complete.
            </summary>
            <param name="reason">The reason we're completing and cleaning up.</param>
            <returns>true if successful in completing; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.CleanupAndComplete(System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveCoreByLinkingCleanupReason)">
            <summary>Cleans up the target for completion.</summary>
            <param name="reason">The reason we're completing and cleaning up.</param>
            <remarks>This method must only be called once on this instance.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.CreateExceptionForSourceCompletion">
            <summary>Creates an exception to use when a source completed before receiving a value.</summary>
            <returns>The initialized exception.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.CreateExceptionForTimeout">
            <summary>Creates an exception to use when a timeout occurs before receiving a value.</summary>
            <returns>The initialized exception.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ReceiveTarget`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsync``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0})">
            <summary>
            Provides a <see cref="T:System.Threading.Tasks.Task`1"/> 
            that asynchronously monitors the source for available output.
            </summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source to monitor.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that informs of whether and when
            more output is available.  When the task completes, if its <see cref="P:System.Threading.Tasks.Task`1.Result"/> is true, more output 
            is available in the source (though another consumer of the source may retrieve the data).  
            If it returns false, more output is not and will never be available, due to the source 
            completing prior to output being available.
            </returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsync``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.CancellationToken)">
            <summary>
            Provides a <see cref="T:System.Threading.Tasks.Task`1"/> 
            that asynchronously monitors the source for available output.
            </summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source to monitor.</param>
            <param name="cancellationToken">The cancellation token with which to cancel the asynchronous operation.</param>
            <returns>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that informs of whether and when
            more output is available.  When the task completes, if its <see cref="P:System.Threading.Tasks.Task`1.Result"/> is true, more output 
            is available in the source (though another consumer of the source may retrieve the data).  
            If it returns false, more output is not and will never be available, due to the source 
            completing prior to output being available.
            </returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1">
            <summary>Provides a target used in OutputAvailableAsync operations.</summary>
            <typeparam name="T">Specifies the type of data in the data source being checked.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.s_handleCompletion">
            <summary>
            Cached continuation delegate that unregisters from cancellation and
            marshals the antecedent's result to the return value.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.s_cancelAndUnlink">
            <summary>
            Cached delegate that cancels the target and unlinks the target from the source.
            Expects an OutputAvailableAsyncTarget as the state argument. 
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.CancelAndUnlink(System.Object)">
            <summary>Cancels the target and unlinks the target from the source.</summary>
            <param name="state">An OutputAvailableAsyncTarget.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.AttemptThreadSafeUnlink">
            <summary>Disposes of _unlinker if the target has been linked.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1._unlinker">
            <summary>The IDisposable used to unlink this target from its source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1._ctr">
            <summary>The registration used to unregister this target from the cancellation token.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>Completes the task when offered a message (but doesn't consume the message).</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.OutputAvailableAsyncTarget`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Encapsulate``2(System.Threading.Tasks.Dataflow.ITargetBlock{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1})">
            <summary>Encapsulates a target and a source into a single propagator.</summary>
            <typeparam name="TInput">Specifies the type of input expected by the target.</typeparam>
            <typeparam name="TOutput">Specifies the type of output produced by the source.</typeparam>
            <param name="target">The target to encapsulate.</param>
            <param name="source">The source to encapsulate.</param>
            <returns>The encapsulated target and source.</returns>
            <remarks>
            This method does not in any way connect the target to the source. It creates a
            propagator block whose target methods delegate to the specified target and whose
            source methods delegate to the specified source.  Any connection between the target
            and the source is left for the developer to explicitly provide.  The propagator's
            <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock"/> implementation delegates to the specified source.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2">
            <summary>Provides a dataflow block that encapsulates a target and a source to form a single propagator.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2._target">
            <summary>The target half.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2._source">
            <summary>The source half.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.TryReceive(System.Predicate{`1},`1@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.TryReceiveAll(System.Collections.Generic.IList{`1}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.DebugView">
            <summary>A debug view for the propagator.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.DebugView._propagator">
            <summary>The propagator being debugged.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.DebugView.#ctor(System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator{`0,`1})">
            <summary>Initializes the debug view.</summary>
            <param name="propagator">The propagator being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.DebugView.Target">
            <summary>The target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.EncapsulatingPropagator`2.DebugView.Source">
            <summary>The source.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Choose``2(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1},System.Action{``1})">
            <summary>Monitors two dataflow sources, invoking the provided handler for whichever source makes data available first.</summary>
            <typeparam name="T1">Specifies type of data contained in the first source.</typeparam>
            <typeparam name="T2">Specifies type of data contained in the second source.</typeparam>
            <param name="source1">The first source.</param>
            <param name="action1">The handler to execute on data from the first source.</param>
            <param name="source2">The second source.</param>
            <param name="action2">The handler to execute on data from the second source.</param>
            <returns>
            <para>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous choice.
            If both sources are completed prior to the choice completing, 
            the resulting task will be canceled. When one of the sources has data available and successfully propagates 
            it to the choice, the resulting task will complete when the handler completes: if the handler throws an exception,
            the task will end in the <see cref="F:System.Threading.Tasks.TaskStatus.Faulted"/> state containing the unhandled exception, otherwise the task
            will end with its <see cref="P:System.Threading.Tasks.Task`1.Result"/> set to either 0 or 1 to
            represent the first or second source, respectively.
            </para>
            <para>
            This method will only consume an element from one of the two data sources, never both.
            </para>
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action2"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Choose``2(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1},System.Action{``1},System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Monitors two dataflow sources, invoking the provided handler for whichever source makes data available first.</summary>
            <typeparam name="T1">Specifies type of data contained in the first source.</typeparam>
            <typeparam name="T2">Specifies type of data contained in the second source.</typeparam>
            <param name="source1">The first source.</param>
            <param name="action1">The handler to execute on data from the first source.</param>
            <param name="source2">The second source.</param>
            <param name="action2">The handler to execute on data from the second source.</param>
            <param name="dataflowBlockOptions">The options with which to configure this choice.</param>
            <returns>
            <para>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous choice.
            If both sources are completed prior to the choice completing, or if the CancellationToken
            provided as part of <paramref name="dataflowBlockOptions"/> is canceled prior to the choice completing,
            the resulting task will be canceled. When one of the sources has data available and successfully propagates 
            it to the choice, the resulting task will complete when the handler completes: if the handler throws an exception,
            the task will end in the <see cref="F:System.Threading.Tasks.TaskStatus.Faulted"/> state containing the unhandled exception, otherwise the task
            will end with its <see cref="P:System.Threading.Tasks.Task`1.Result"/> set to either 0 or 1 to
            represent the first or second source, respectively.
            </para>
            <para>
            This method will only consume an element from one of the two data sources, never both.
            If cancellation is requested after an element has been received, the cancellation request will be ignored,
            and the relevant handler will be allowed to execute. 
            </para>
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Choose``3(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1},System.Action{``1},System.Threading.Tasks.Dataflow.ISourceBlock{``2},System.Action{``2})">
            <summary>Monitors three dataflow sources, invoking the provided handler for whichever source makes data available first.</summary>
            <typeparam name="T1">Specifies type of data contained in the first source.</typeparam>
            <typeparam name="T2">Specifies type of data contained in the second source.</typeparam>
            <typeparam name="T3">Specifies type of data contained in the third source.</typeparam>
            <param name="source1">The first source.</param>
            <param name="action1">The handler to execute on data from the first source.</param>
            <param name="source2">The second source.</param>
            <param name="action2">The handler to execute on data from the second source.</param>
            <param name="source3">The third source.</param>
            <param name="action3">The handler to execute on data from the third source.</param>
            <returns>
            <para>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous choice.
            If all sources are completed prior to the choice completing, 
            the resulting task will be canceled. When one of the sources has data available and successfully propagates 
            it to the choice, the resulting task will complete when the handler completes: if the handler throws an exception,
            the task will end in the <see cref="F:System.Threading.Tasks.TaskStatus.Faulted"/> state containing the unhandled exception, otherwise the task
            will end with its <see cref="P:System.Threading.Tasks.Task`1.Result"/> set to the 0-based index of the source.
            </para>
            <para>
            This method will only consume an element from one of the data sources, never more than one.
            </para>
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source3"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action3"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.Choose``3(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1},System.Action{``1},System.Threading.Tasks.Dataflow.ISourceBlock{``2},System.Action{``2},System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Monitors three dataflow sources, invoking the provided handler for whichever source makes data available first.</summary>
            <typeparam name="T1">Specifies type of data contained in the first source.</typeparam>
            <typeparam name="T2">Specifies type of data contained in the second source.</typeparam>
            <typeparam name="T3">Specifies type of data contained in the third source.</typeparam>
            <param name="source1">The first source.</param>
            <param name="action1">The handler to execute on data from the first source.</param>
            <param name="source2">The second source.</param>
            <param name="action2">The handler to execute on data from the second source.</param>
            <param name="source3">The third source.</param>
            <param name="action3">The handler to execute on data from the third source.</param>
            <param name="dataflowBlockOptions">The options with which to configure this choice.</param>
            <returns>
            <para>
            A <see cref="T:System.Threading.Tasks.Task`1"/> that represents the asynchronous choice.
            If all sources are completed prior to the choice completing, or if the CancellationToken
            provided as part of <paramref name="dataflowBlockOptions"/> is canceled prior to the choice completing,
            the resulting task will be canceled. When one of the sources has data available and successfully propagates 
            it to the choice, the resulting task will complete when the handler completes: if the handler throws an exception,
            the task will end in the <see cref="F:System.Threading.Tasks.TaskStatus.Faulted"/> state containing the unhandled exception, otherwise the task
            will end with its <see cref="P:System.Threading.Tasks.Task`1.Result"/> set to the 0-based index of the source.
            </para>
            <para>
            This method will only consume an element from one of the data sources, never more than one.
            If cancellation is requested after an element has been received, the cancellation request will be ignored,
            and the relevant handler will be allowed to execute. 
            </para>
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action1"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action2"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source3"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action3"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseCore``3(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1},System.Action{``1},System.Threading.Tasks.Dataflow.ISourceBlock{``2},System.Action{``2},System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Monitors dataflow sources, invoking the provided handler for whichever source makes data available first.</summary>
            <typeparam name="T1">Specifies type of data contained in the first source.</typeparam>
            <typeparam name="T2">Specifies type of data contained in the second source.</typeparam>
            <typeparam name="T3">Specifies type of data contained in the third source.</typeparam>
            <param name="source1">The first source.</param>
            <param name="action1">The handler to execute on data from the first source.</param>
            <param name="source2">The second source.</param>
            <param name="action2">The handler to execute on data from the second source.</param>
            <param name="source3">The third source.</param>
            <param name="action3">The handler to execute on data from the third source.</param>
            <param name="dataflowBlockOptions">The options with which to configure this choice.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TryChooseFromSource``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Int32,System.Threading.Tasks.TaskScheduler,System.Threading.Tasks.Task{System.Int32}@)">
            <summary>
            Tries to remove data from a receivable source and schedule an action to process that received item.
            </summary>
            <typeparam name="T">Specifies the type of data to process.</typeparam>
            <param name="source">The source from which to receive the data.</param>
            <param name="action">The action to run for the received data.</param>
            <param name="branchId">The branch ID associated with this source/action pair.</param>
            <param name="scheduler">The scheduler to use to process the action.</param>
            <param name="task">The task created for processing the received item.</param>
            <returns>true if this try attempt satisfies the choose operation; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseCoreByLinking``3(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0},System.Threading.Tasks.Dataflow.ISourceBlock{``1},System.Action{``1},System.Threading.Tasks.Dataflow.ISourceBlock{``2},System.Action{``2},System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Monitors dataflow sources, invoking the provided handler for whichever source makes data available first.</summary>
            <typeparam name="T1">Specifies type of data contained in the first source.</typeparam>
            <typeparam name="T2">Specifies type of data contained in the second source.</typeparam>
            <typeparam name="T3">Specifies type of data contained in the third source.</typeparam>
            <param name="source1">The first source.</param>
            <param name="action1">The handler to execute on data from the first source.</param>
            <param name="source2">The second source.</param>
            <param name="action2">The handler to execute on data from the second source.</param>
            <param name="source3">The third source.</param>
            <param name="action3">The handler to execute on data from the third source.</param>
            <param name="dataflowBlockOptions">The options with which to configure this choice.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.CreateChooseBranch``1(System.Runtime.CompilerServices.StrongBox{System.Threading.Tasks.Task},System.Threading.CancellationTokenSource,System.Threading.Tasks.TaskScheduler,System.Int32,System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Action{``0})">
            <summary>Creates a target for a branch of a Choose.</summary>
            <typeparam name="T">Specifies the type of data coming through this branch.</typeparam>
            <param name="boxedCompleted">A strong box around the completed Task from any target. Also sync obj for access to the targets.</param>
            <param name="cts">The CancellationTokenSource used to issue tear down / cancellation requests.</param>
            <param name="scheduler">The TaskScheduler on which to scheduler work.</param>
            <param name="branchId">The ID of this branch, used to complete the resultTask.</param>
            <param name="source">The source with which this branch is associated.</param>
            <param name="action">The action to run for a single element received from the source.</param>
            <returns>A task representing the branch.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1">
            <summary>Provides a dataflow target used by Choose to receive data from a single source.</summary>
            <typeparam name="T">Specifies the type of data offered to this target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.s_processBranchFunction">
            <summary>
            Delegate used to invoke the action for a branch when that branch is activated
            on the fast path.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1._completed">
            <summary>
            A wrapper for the task that represents the completed branch of this choice.
            The wrapper is also the sync object used to protect all choice branch's access to shared state.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.#ctor(System.Runtime.CompilerServices.StrongBox{System.Threading.Tasks.Task},System.Threading.CancellationToken)">
            <summary>Initializes the target.</summary>
            <param name="completed">The completed wrapper shared between all choice branches.</param>
            <param name="cancellationToken">The cancellation token used to cancel this target.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>Called when this choice branch is being offered a message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.ChooseTarget`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.AsObservable``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0})">
            <summary>Creates a new <see cref="T:System.IObservable`1"/> abstraction over the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/>.</summary>
            <typeparam name="TOutput">Specifies the type of data contained in the source.</typeparam>
            <param name="source">The source to wrap.</param>
            <returns>An IObservable{TOutput} that enables observers to be subscribed to the source.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="source"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock._nonGreedyExecutionOptions">
            <summary>Cached options for non-greedy processing.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1">
            <summary>Provides an IObservable veneer over a source block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1._table">
            <summary>The table that maps source to cached observable.</summary>
            <remarks>
            ConditionalWeakTable doesn't do the initialization under a lock, just the publication.
            This means that if there's a race to create two observables off the same source, we could end
            up instantiating multiple SourceObservable instances, of which only one will be published.
            Worst case, we end up with a few additional continuations off of the source's completion task.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.From(System.Threading.Tasks.Dataflow.ISourceBlock{`0})">
            <summary>Gets an observable to represent the source block.</summary>
            <param name="source">The source.</param>
            <returns>The observable.</returns>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1._SubscriptionLock">
            <summary>Object used to synchronize all subscriptions, unsubscriptions, and propagations.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1._source">
            <summary>The wrapped source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1._observersState">
            <summary>
            The current target.  We use the same target until the number of subscribers
            drops to 0, at which point we substitute in a new target.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.#ctor(System.Threading.Tasks.Dataflow.ISourceBlock{`0})">
            <summary>Initializes the SourceObservable.</summary>
            <param name="source">The source to wrap.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.GetCompletionError">
            <summary>Gets any exceptions from the source block.</summary>
            <returns>The aggregate exception of all errors, or null if everything completed successfully.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.System#IObservable{TOutput}#Subscribe(System.IObserver{`0})">
            <summary>Subscribes the observer to the source.</summary>
            <param name="observer">the observer to subscribe.</param>
            <returns>An IDisposable that may be used to unsubscribe the source.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.Unsubscribe(System.IObserver{`0})">
            <summary>Unsubscribes the observer.</summary>
            <param name="observer">The observer being unsubscribed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ResetObserverState">
            <summary>Resets the observer state to the original, inactive state.</summary>
            <returns>The list of active observers prior to the reset.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.DebugView">
            <summary>Provides a debugger type proxy for the observable.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.DebugView._observable">
            <summary>The observable being debugged.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="observable">The target being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.DebugView.Observers">
            <summary>Gets an enumerable of the observers.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState">
            <summary>State associated with the current target for propagating data to observers.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.Observable">
            <summary>The owning SourceObservable.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.Target">
            <summary>The ActionBlock that consumes data from a source and offers it to targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.Canceler">
            <summary>Used to cancel continuations when they're no longer necessary.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.Observers">
            <summary>
            A list of the observers currently registered with this target.  The list is immutable
            to enable iteration through the list while the set of observers may be changing.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.Unlinker">
            <summary>Used to unlink the source from this target when the last observer is unsubscribed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState._tempSendAsyncTaskList">
            <summary>
            Temporary list to keep track of SendAsync tasks to TargetObservers with back pressure.
            This field gets instantiated on demand. It gets populated and cleared within an offering cycle.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.#ctor(System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable{`0})">
            <summary>Initializes the target instance.</summary>
            <param name="observable">The owning observable.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.ProcessItemAsync(`0)">
            <summary>Forwards an item to all currently subscribed observers.</summary>
            <param name="item">The item to forward.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.SourceObservable`1.ObserversState.NotifyObserversOfCompletion(System.Exception)">
            <summary>Notifies all currently registered observers that they should complete.</summary>
            <param name="targetException">
            Non-null when an unexpected exception occurs during processing.  Faults
            all subscribed observers and resets the observable back to its original condition.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.AsObserver``1(System.Threading.Tasks.Dataflow.ITargetBlock{``0})">
            <summary>Creates a new <see cref="T:System.IObserver`1"/> abstraction over the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/>.</summary>
            <typeparam name="TInput">Specifies the type of input accepted by the target block.</typeparam>
            <param name="target">The target to wrap.</param>
            <returns>An observer that wraps the target block.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1">
            <summary>Provides an observer wrapper for a target block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1._target">
            <summary>The wrapped target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.#ctor(System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>Initializes the observer.</summary>
            <param name="target">The target to wrap.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.System#IObserver{TInput}#OnNext(`0)">
            <summary>Sends the value to the observer.</summary>
            <param name="value">The value to send.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.System#IObserver{TInput}#OnCompleted">
            <summary>Completes the target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.System#IObserver{TInput}#OnError(System.Exception)">
            <summary>Forwards the error to the target.</summary>
            <param name="error">The exception to forward.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.SendAsyncToTarget(`0)">
            <summary>Sends a value to the underlying target asynchronously.</summary>
            <param name="value">The value to send.</param>
            <returns>A Task{bool} to wait on.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.TargetObserver`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.NullTarget``1">
            <summary>
            Gets a target block that synchronously accepts all messages offered to it and drops them.
            </summary>
            <typeparam name="TInput">The type of the messages this block can accept.</typeparam>
            <returns>A <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> that accepts and subsequently drops all offered messages.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlock.NullTargetBlock`1">
            <summary>
            Target block that synchronously accepts all messages offered to it and drops them.
            </summary>
            <typeparam name="TInput">The type of the messages this block can accept.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.NullTargetBlock`1.System#Threading#Tasks#Dataflow#ITargetBlock{TInput}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.NullTargetBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlock.NullTargetBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlock.NullTargetBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions">
            <summary>
            Provides options used to configure the processing performed by dataflow blocks.
            </summary>
            <remarks>
            <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/> is mutable and can be configured through its properties.  
            When specific configuration options are not set, the following defaults are used:
            <list type="table">
                <listheader>
                    <term>Options</term>
                    <description>Default</description>
                </listheader>
                <item>
                    <term>TaskScheduler</term>
                    <description><see cref="P:System.Threading.Tasks.TaskScheduler.Default"/></description>
                </item>
                <item>
                    <term>MaxMessagesPerTask</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>CancellationToken</term>
                    <description><see cref="P:System.Threading.CancellationToken.None"/></description>
                </item>
                <item>
                    <term>BoundedCapacity</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>NameFormat</term>
                    <description>"{0} Id={1}"</description>
                </item>
                <item>
                    <term>EnsureOrdered</term>
                    <description>true</description>
                </item>
            </list>
            Dataflow blocks capture the state of the options at their construction.  Subsequent changes
            to the provided <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/> instance should not affect the behavior
            of a dataflow block.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions.Unbounded">
            <summary>
            A constant used to specify an unlimited quantity for <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/> members 
            that provide an upper bound. This field is constant.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions._taskScheduler">
            <summary>The scheduler to use for scheduling tasks to process messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions._cancellationToken">
            <summary>The cancellation token to monitor for cancellation requests.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions._maxMessagesPerTask">
            <summary>The maximum number of messages that may be processed per task.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions._boundedCapacity">
            <summary>The maximum number of messages that may be buffered by the block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions._nameFormat">
            <summary>The name format to use for creating a name for a block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions._ensureOrdered">
            <summary>Whether to force ordered processing of messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowBlockOptions.Default">
            <summary>A default instance of <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
            <remarks>
            Do not change the values of this instance.  It is shared by all of our blocks when no options are provided by the user.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlockOptions.DefaultOrClone">
            <summary>Returns this <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/> instance if it's the default instance or else a cloned instance.</summary>
            <returns>An instance of the options that may be cached by the block.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowBlockOptions.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.TaskScheduler">
            <summary>Gets or sets the <see cref="T:System.Threading.Tasks.TaskScheduler"/> to use for scheduling tasks.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.CancellationToken">
            <summary>Gets or sets the <see cref="T:System.Threading.CancellationToken"/> to monitor for cancellation requests.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.MaxMessagesPerTask">
            <summary>Gets or sets the maximum number of messages that may be processed per task.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.ActualMaxMessagesPerTask">
            <summary>Gets a MaxMessagesPerTask value that may be used for comparison purposes.</summary>
            <returns>The maximum value, usable for comparison purposes.</returns>
            <remarks>Unlike MaxMessagesPerTask, this property will always return a positive value.</remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.BoundedCapacity">
            <summary>Gets or sets the maximum number of messages that may be buffered by the block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat">
            <summary>
            Gets or sets the format string to use when a block is queried for its name.
            </summary>
            <remarks>
            The name format may contain up to two format items. {0} will be substituted 
            with the block's name. {1} will be substituted with the block's Id, as is 
            returned from the block's Completion.Id property.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.EnsureOrdered">
            <summary>Gets or sets whether ordered processing should be enforced on a block's handling of messages.</summary>
            <remarks>
            By default, dataflow blocks enforce ordering on the processing of messages. This means that a
            block like <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/> will ensure that messages are output in the same
            order they were input, even if parallelism is employed by the block and the processing of a message N finishes 
            after the processing of a subsequent message N+1 (the block will reorder the results to maintain the input
            ordering prior to making those results available to a consumer).  Some blocks may allow this to be relaxed,
            however.  Setting <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.EnsureOrdered"/> to false tells a block that it may relax this ordering if
            it's able to do so.  This can be beneficial if the immediacy of a processed result being made available
            is more important than the input-to-output ordering being maintained.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions">
            <summary>
            Provides options used to configure the processing performed by dataflow blocks that
            process each message through the invocation of a user-provided delegate, blocks such
            as <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/> and <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/>.
            </summary>
            <remarks>
            <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/> is mutable and can be configured through its properties.  
            When specific configuration options are not set, the following defaults are used:
            <list type="table">
                <listheader>
                    <term>Options</term>
                    <description>Default</description>
                </listheader>
                <item>
                    <term>TaskScheduler</term>
                    <description><see cref="P:System.Threading.Tasks.TaskScheduler.Default"/></description>
                </item>
                <item>
                    <term>CancellationToken</term>
                    <description><see cref="P:System.Threading.CancellationToken.None"/></description>
                </item>
                <item>
                    <term>MaxMessagesPerTask</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>BoundedCapacity</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>NameFormat</term>
                    <description>"{0} Id={1}"</description>
                </item>
                <item>
                    <term>EnsureOrdered</term>
                    <description>true</description>
                </item>
                <item>
                    <term>MaxDegreeOfParallelism</term>
                    <description>1</description>
                </item>
                <item>
                    <term>SingleProducerConstrained</term>
                    <description>false</description>
                </item>
            </list>
            Dataflow block captures the state of the options at their construction.  Subsequent changes
            to the provided <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/> instance should not affect the behavior
            of a dataflow block.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.Default">
            <summary>A default instance of <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
            <remarks>
            Do not change the values of this instance.  It is shared by all of our blocks when no options are provided by the user.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.DefaultOrClone">
            <summary>Returns this <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/> instance if it's the default instance or else a cloned instance.</summary>
            <returns>An instance of the options that may be cached by the block.</returns>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions._maxDegreeOfParallelism">
            <summary>The maximum number of tasks that may be used concurrently to process messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions._singleProducerConstrained">
            <summary>Whether the code using this block will only ever have a single producer accessing the block at any given time.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.MaxDegreeOfParallelism">
            <summary>Gets the maximum number of messages that may be processed by the block concurrently.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.SingleProducerConstrained">
            <summary>
            Gets whether code using the dataflow block is constrained to one producer at a time.
            </summary>
            <remarks>
            This property defaults to false, such that the block may be used by multiple
            producers concurrently.  This property should only be set to true if the code
            using the block can guarantee that it will only ever be used by one producer
            (e.g. a source linked to the block) at a time, meaning that methods like Post, 
            Complete, Fault, and OfferMessage will never be called concurrently.  Some blocks 
            may choose to capitalize on the knowledge that there will only be one producer at a time
            in order to provide better performance.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.ActualMaxDegreeOfParallelism">
            <summary>Gets a MaxDegreeOfParallelism value that may be used for comparison purposes.</summary>
            <returns>The maximum value, usable for comparison purposes.</returns>
            <remarks>Unlike MaxDegreeOfParallelism, this property will always return a positive value.</remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions.SupportsParallelExecution">
            <summary>Gets whether these dataflow block options allow for parallel execution.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions">
            <summary>
            Provides options used to configure the processing performed by dataflow blocks that
            group together multiple messages, blocks such as <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`2"/> and 
            <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/>.
            </summary>
            <remarks>
            <see cref="T:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions"/> is mutable and can be configured through its properties.  
            When specific configuration options are not set, the following defaults are used:
            <list type="table">
                <listheader>
                    <term>Options</term>
                    <description>Default</description>
                </listheader>
                <item>
                    <term>TaskScheduler</term>
                    <description><see cref="P:System.Threading.Tasks.TaskScheduler.Default"/></description>
                </item>
                <item>
                    <term>CancellationToken</term>
                    <description><see cref="P:System.Threading.CancellationToken.None"/></description>
                </item>
                <item>
                    <term>MaxMessagesPerTask</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>BoundedCapacity</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>NameFormat</term>
                    <description>"{0} Id={1}"</description>
                </item>
                <item>
                    <term>EnsureOrdered</term>
                    <description>true</description>
                </item>
                <item>
                    <term>MaxNumberOfGroups</term>
                    <description>GroupingDataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>Greedy</term>
                    <description>true</description>
                </item>
            </list>
            Dataflow block capture the state of the options at their construction.  Subsequent changes
            to the provided <see cref="T:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions"/> instance should not affect the behavior
            of a dataflow block.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions.Default">
            <summary>A default instance of <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
            <remarks>
            Do not change the values of this instance.  It is shared by all of our blocks when no options are provided by the user.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions.DefaultOrClone">
            <summary>Returns this <see cref="T:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions"/> instance if it's the default instance or else a cloned instance.</summary>
            <returns>An instance of the options that may be cached by the block.</returns>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions._greedy">
            <summary>Whether the block should greedily consume offered messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions._maxNumberOfGroups">
            <summary>The maximum number of groups that should be generated by the block.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions.Greedy">
            <summary>Gets or sets the Boolean value to use to determine whether to greedily consume offered messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions.MaxNumberOfGroups">
            <summary>Gets or sets the maximum number of groups that should be generated by the block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions.ActualMaxNumberOfGroups">
            <summary>Gets a MaxNumberOfGroups value that may be used for comparison purposes.</summary>
            <returns>The maximum value, usable for comparison purposes.</returns>
            <remarks>Unlike MaxNumberOfGroups, this property will always return a positive value.</remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions">
            <summary>
            Provides options used to configure a link between dataflow blocks.
            </summary>
            <remarks>
            <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions"/> is mutable and can be configured through its properties.  
            When specific configuration options are not set, the following defaults are used:
            <list type="table">
                <listheader>
                    <term>Options</term>
                    <description>Default</description>
                </listheader>
                <item>
                    <term>PropagateCompletion</term>
                    <description>False</description>
                </item>
                <item>
                    <term>MaxMessages</term>
                    <description>DataflowBlockOptions.Unbounded (-1)</description>
                </item>
                <item>
                    <term>Append</term>
                    <description>True</description>
                </item>
            </list>
            Dataflow blocks capture the state of the options at linking. Subsequent changes to the provided
            <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions"/> instance should not affect the behavior of a link.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions.Unbounded">
            <summary>
            A constant used to specify an unlimited quantity for <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions"/> members 
            that provide an upper bound. This field is a constant tied to <see cref="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions.Unbounded"/>.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions._propagateCompletion">
            <summary>Whether the linked target will have completion and faulting notification propagated to it automatically.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions._maxNumberOfMessages">
            <summary>The maximum number of messages that may be consumed across the link.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions._append">
            <summary>Whether the link should be appended to the source?s list of links, or whether it should be prepended.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions.Default">
            <summary>A default instance of <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions"/>.</summary>
            <remarks>
            Do not change the values of this instance.  It is shared by all of our blocks when no options are provided by the user.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowLinkOptions.UnlinkAfterOneAndPropagateCompletion">
            <summary>A cached instance of <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions"/>.</summary>
            <remarks>
            Do not change the values of this instance.  It is shared by all of our blocks that need to unlink after one message has been consumed.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowLinkOptions.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowLinkOptions.PropagateCompletion">
            <summary>Gets or sets whether the linked target will have completion and faulting notification propagated to it automatically.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowLinkOptions.MaxMessages">
            <summary>Gets or sets the maximum number of messages that may be consumed across the link.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowLinkOptions.Append">
            <summary>Gets or sets whether the link should be appended to the source?s list of links, or whether it should be prepended.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader">
            <summary>Provides a container of data attributes for passing between dataflow blocks.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowMessageHeader._id">
            <summary>The message ID. Needs to be unique within the source.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowMessageHeader.#ctor(System.Int64)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> with the specified attributes.</summary>
            <param name="id">The ID of the message. Must be unique within the originating source block. Need not be globally unique.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowMessageHeader.IsValid">
            <summary>Gets the validity of the message.</summary>
            <returns>True if the ID of the message is different from 0. False if the ID of the message is 0</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.DataflowMessageHeader.Id">
            <summary>Gets the ID of the message within the source.</summary>
            <returns>The ID contained in the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowMessageHeader.Equals(System.Threading.Tasks.Dataflow.DataflowMessageHeader)">
            <summary>Checks two <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instances for equality by ID without boxing.</summary>
            <param name="other">Another <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</param>
            <returns>True if the instances are equal. False otherwise.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowMessageHeader.Equals(System.Object)">
            <summary>Checks boxed <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instances for equality by ID.</summary>
            <param name="obj">A boxed <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</param>
            <returns>True if the instances are equal. False otherwise.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowMessageHeader.GetHashCode">
            <summary>Generates a hash code for the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</summary>
            <returns>Hash code.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowMessageHeader.op_Equality(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.DataflowMessageHeader)">
            <summary>Checks two <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instances for equality by ID.</summary>
            <param name="left">A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</param>
            <param name="right">A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</param>
            <returns>True if the instances are equal. False otherwise.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.DataflowMessageHeader.op_Inequality(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.DataflowMessageHeader)">
            <summary>Checks two <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instances for non-equality by ID.</summary>
            <param name="left">A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</param>
            <param name="right">A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> instance.</param>
            <returns>True if the instances are not equal. False otherwise.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.DataflowMessageStatus">
            <summary>Represents the status of a <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader"/> when passed between dataflow blocks.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted">
            <summary>
            Indicates that the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> accepted the message.  Once a target has accepted a message, 
            it is wholly owned by the target.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined">
            <summary>
            Indicates that the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> declined the message.  The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/> still owns the message.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed">
            <summary>
            Indicates that the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> postponed the message for potential consumption at a later time.  
            The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/> still owns the message.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable">
            <summary>
            Indicates that the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> tried to accept the message from the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/>, but the 
            message was no longer available.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently">
            <summary>
            Indicates that the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> declined the message.  The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/> still owns the message.  
            Additionally, the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> will decline all future messages sent by the source.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.IDataflowBlock">
            <summary>Represents a dataflow block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.IDataflowBlock.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.IDataflowBlock.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.IDataflowBlock.Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.IPropagatorBlock`2">
            <summary>Represents a dataflow block that is both a target for data and a source of data.</summary>
            <typeparam name="TInput">Specifies the type of data accepted by the <see cref="T:System.Threading.Tasks.Dataflow.IPropagatorBlock`2"/>.</typeparam>
            <typeparam name="TOutput">Specifies the type of data supplied by the <see cref="T:System.Threading.Tasks.Dataflow.IPropagatorBlock`2"/>.</typeparam>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1">
            <summary>Represents a dataflow block that supports receiving of messages without linking.</summary>
            <typeparam name="TOutput">Specifies the type of data supplied by the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1"/>.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1.TryReceive(System.Predicate{`0},`0@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1.TryReceiveAll(System.Collections.Generic.IList{`0}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.ISourceBlock`1">
            <summary>Represents a dataflow block that is a source of data.</summary>
            <typeparam name="TOutput">Specifies the type of data supplied by the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/>.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ISourceBlock`1.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.ITargetBlock`1">
            <summary>Represents a dataflow block that is a target for data.</summary>
            <typeparam name="TInput">Specifies the type of data accepted by the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/>.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ITargetBlock`1.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.ActionBlock`1">
            <summary>Provides a dataflow block that invokes a provided <see cref="T:System.Action`1"/> delegate for every data element received.</summary>
            <typeparam name="TInput">Specifies the type of data operated on by this <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ActionBlock`1._defaultTarget">
            <summary>The core implementation of this message block when in default mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ActionBlock`1._spscTarget">
            <summary>The core implementation of this message block when in SPSC mode.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.#ctor(System.Action{`0})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/> with the specified <see cref="T:System.Action`1"/>.</summary>
            <param name="action">The action to invoke with each data element received.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.#ctor(System.Action{`0},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/> with the specified <see cref="T:System.Action`1"/> and <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.</summary>
            <param name="action">The action to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.#ctor(System.Func{`0,System.Threading.Tasks.Task})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/> with the specified <see cref="T:System.Func`2"/>.</summary>
            <param name="action">The action to invoke with each data element received.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.#ctor(System.Func{`0,System.Threading.Tasks.Task},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/> with the specified <see cref="T:System.Func`2"/> and <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.</summary>
            <param name="action">The action to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.#ctor(System.Delegate,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/> with the specified delegate and options.</summary>
            <param name="action">The action to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="action"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.ProcessMessage(System.Action{`0},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Processes the message with a user-provided action.</summary>
            <param name="action">The action to use to process the message.</param>
            <param name="messageWithId">The message to be processed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.ProcessMessageWithTask(System.Func{`0,System.Threading.Tasks.Task},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Processes the message with a user-provided action that returns a task.</summary>
            <param name="action">The action to use to process the message.</param>
            <param name="messageWithId">The message to be processed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.AsyncCompleteProcessMessageWithTask(System.Threading.Tasks.Task)">
            <summary>Completes the processing of an asynchronous message.</summary>
            <param name="completed">The completed task.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.Post(`0)">
            <summary>Posts an item to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/>.</summary>
            <param name="item">The item being offered to the target.</param>
            <returns>true if the item was accepted by the target block; otherwise, false.</returns>
            <remarks>
            This method will return once the target block has decided to accept or decline the item,
            but unless otherwise dictated by special semantics of the target block, it does not wait
            for the item to actually be processed (for example, <see cref="T:System.Threading.Tasks.Dataflow.ActionBlock`1"/>
            will return from Post as soon as it has stored the posted item into its input queue).  From the perspective
            of the block's processing, Post is asynchronous. For target blocks that support postponing offered messages, 
            or for blocks that may do more processing in their Post implementation, consider using
             <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlock.SendAsync">SendAsync</see>, 
            which will return immediately and will enable the target to postpone the posted message and later consume it 
            after SendAsync returns.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.System#Threading#Tasks#Dataflow#ITargetBlock{TInput}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.InputCount">
            <summary>
        Gets the number of input items waiting to be processed by this block.
      </summary><remarks>
        The InputCount does not include any items currently being processed by the block or any items that 
        have already been processed by the block.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.InputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed. This must only be used from the debugger.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView">
            <summary>Provides a debugger type proxy for the Call.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView._actionBlock">
            <summary>The action block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView._defaultDebugInfo">
            <summary>The action block's default target being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView._spscDebugInfo">
            <summary>The action block's SPSC target being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.ActionBlock{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="actionBlock">The target being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.PostponedMessages">
            <summary>Gets any postponed messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.CurrentDegreeOfParallelism">
            <summary>Gets the number of outstanding input operations.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.DataflowBlockOptions">
            <summary>Gets the ExecutionDataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.ActionBlock`1.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchBlock`1">
            <summary>Provides a dataflow block that batches inputs into arrays.</summary>
            <typeparam name="T">Specifies the type of data put into batches.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1._target">
            <summary>The target half of this batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1._source">
            <summary>The source half of this batch.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.#ctor(System.Int32)">
            <summary>Initializes this <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/> with the specified batch size.</summary>
            <param name="batchSize">The number of items to group into a batch.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.#ctor(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes this <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/> with the  specified batch size, declining option, and block options.</summary>
            <param name="batchSize">The number of items to group into a batch.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be no greater than the value of the BoundedCapacity option if a non-default value has been set.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.TriggerBatch">
            <summary>
            Triggers the <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/> to initiate a batching operation even if the number
            of currently queued or postponed items is less than the <see cref="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchSize"/>.
            </summary>
            <remarks>
            In greedy mode, a batch will be generated from queued items even if fewer exist than the batch size.  
            In non-greedy mode, a batch will be generated asynchronously from postponed items even if
            fewer than the batch size can be consumed.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0[]},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.TryReceive(System.Predicate{`0[]},`0[]@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.TryReceiveAll(System.Collections.Generic.IList{`0[]}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchSize">
            <summary>Gets the size of the batches generated by this <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/>.</summary>
            <remarks>
            If the number of items provided to the block is not evenly divisible by the batch size provided
            to the block's constructor, the block's final batch may contain fewer than the requested number of items.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T[]}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0[]},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T[]}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0[]})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T[]}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0[]})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be offered.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView">
            <summary>Provides a debugger type proxy for the Batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView._batchBlock">
            <summary>The batch block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView._targetDebuggingInformation">
            <summary>The target half being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.BatchBlock{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="batchBlock">The batch being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.BatchesCompleted">
            <summary>Gets the number of batches that have been completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.TaskForInputProcessing">
            <summary>Gets the task being used for input processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.BatchSize">
            <summary>Gets the size of batches generated by the block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.PostponedMessages">
            <summary>Gets the messages postponed by this batch.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.DebugView.NextMessageReservedFor">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore">
            <summary>Provides the core target implementation for a Batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._messages">
            <summary>The messages in this target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._completionTask">
            <summary>A task representing the completion of the block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.IncomingLock">
            <summary>Gets the object used as the incoming lock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._owningBatch">
            <summary>The target that owns this target core.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._batchSize">
            <summary>The batch size.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._nonGreedyState">
            <summary>State used when in non-greedy mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._boundingState">
            <summary>Bounding state for when the block is executing in bounded mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._dataflowBlockOptions">
            <summary>The options associated with this block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._batchCompletedAction">
            <summary>The action invoked with a completed batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._decliningPermanently">
            <summary>Whether to stop accepting new messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._batchesCompleted">
            <summary>Whether we've completed at least one batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore._completionReserved">
            <summary>Whether someone has reserved the right to call CompleteBlockOncePossible.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState">
            <summary>State used only when in non-greedy mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState.PostponedMessages">
            <summary>Collection of postponed messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState.PostponedMessagesTemp">
            <summary>A temporary array used to store data retrieved from PostponedMessages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState.ReservedSourcesTemp">
            <summary>A temporary list used in non-greedy mode when consuming postponed messages to store successfully reserved messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState.AcceptFewerThanBatchSize">
            <summary>Whether the next batching operation should accept fewer than BatchSize items.</summary>
            <remarks>This value may be read not under a lock, but it must only be written to protected by the IncomingLock.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState.TaskForInputProcessing">
            <summary>The task used to process messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.NonGreedyState.#ctor(System.Int32)">
            <summary>Initializes the NonGreedyState.</summary>
            <param name="batchSize">The batch size used by the BatchBlock.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.#ctor(System.Threading.Tasks.Dataflow.BatchBlock{`0},System.Int32,System.Action{`0[]},System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes this target core with the specified configuration.</summary>
            <param name="owningBatch">The owning batch target.</param>
            <param name="batchSize">The number of items to group into a batch.</param>
            <param name="batchCompletedAction">The delegate to invoke when a batch is completed.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/>.  Assumed to be immutable.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.TriggerBatch">
            <summary>
            Triggers a batching operation even if the number of currently queued or postponed items is less than the <see cref="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.BatchSize"/>.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.Complete(System.Exception,System.Boolean,System.Boolean,System.Boolean)">
            <summary>Completes/faults the block.
            In general, it is not safe to pass releaseReservedMessages:true, because releasing of reserved messages
            is done without taking a lock. We pass releaseReservedMessages:true only when an exception has been 
            caught inside the message processing loop which is a single instance at any given moment.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.BatchSize">
            <summary>Gets the size of the batches generated by this <see cref="T:System.Threading.Tasks.Dataflow.BatchBlock`1"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.CanceledOrFaulted">
            <summary>Gets whether the target has had cancellation requested or an exception has occurred.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.BoundedCapacityAvailable">
            <summary>Returns the available capacity to bring in postponed items. The exact values above _batchSize don't matter.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.CompleteBlockIfPossible">
            <summary>Completes the block once all completion conditions are met.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.BatchesNeedProcessing">
            <summary>
            Gets whether we should launch further synchronous or asynchronous processing
            to create batches.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.ProcessAsyncIfNecessary(System.Boolean)">
            <summary>Called when new messages are available to be processed.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.ProcessAsyncIfNecessary_Slow(System.Boolean)">
            <summary>
            Slow path for ProcessAsyncIfNecessary. 
            Separating out the slow path into its own method makes it more likely that the fast path method will get inlined.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.ProcessMessagesLoopCore">
            <summary>Task body used to process messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.MakeBatchIfPossible(System.Boolean)">
            <summary>Create a batch from the available items.</summary>
            <param name="evenIfFewerThanBatchSize">
            Whether to make a batch even if there are fewer than BatchSize items available.
            </param>
            <returns>true if a batch was created and published; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.RetrievePostponedItemsNonGreedy(System.Boolean)">
            <summary>Retrieves postponed items in non-greedy mode if we have enough to make a batch.</summary>
            <remarks>Whether we'll accept consuming fewer elements than the defined batch size.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.RetrievePostponedItemsGreedyBounded(System.Boolean)">
            <summary>Retrieves postponed items in greedy bounded mode.</summary>
            <remarks>Whether we'll accept consuming fewer elements than the defined batch size.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.ConsumeReservedMessagesNonGreedy">
            <summary>
            Consumes all of the reserved messages stored in the non-greedy state's temporary reserved source list.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.ConsumeReservedMessagesGreedyBounded">
            <summary>
            Consumes all of the reserved messages stored in the non-greedy state's temporary reserved source list.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.ReleaseReservedMessages(System.Boolean)">
            <summary>
            Releases all of the reserved messages stored in the non-greedy state's temporary reserved source list.
            </summary>
            <param name="throwOnFirstException">
            Whether to allow an exception from a release to propagate immediately,
            or to delay propagation until all releases have been attempted.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.OnItemsRemoved(System.Int32)">
            <summary>Notifies the block that one or more items was removed from the queue.</summary>
            <param name="numItemsRemoved">The number of items removed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.CountItems(`0[],System.Collections.Generic.IList{`0[]})">
            <summary>Counts the input items in a single output item or in a list of output items.</summary>
            <param name="singleOutputItem">A single output item. Only considered if multipleOutputItems == null.</param>
            <param name="multipleOutputItems">A list of output items. May be null.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.InputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.GetDebuggingInformation">
            <summary>Gets information about this helper to be used for display in a debugger.</summary>
            <returns>Debugging information about this target.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggerDisplayContent">
            <summary>Gets the object to display in the debugger display attribute.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation">
            <summary>Provides a wrapper for commonly needed debugging information.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation._target">
            <summary>The target being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.#ctor(System.Threading.Tasks.Dataflow.BatchBlock{`0}.BatchBlockTargetCore)">
            <summary>Initializes the debugging helper.</summary>
            <param name="target">The target being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.TaskForInputProcessing">
            <summary>Gets the task being used for input processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.PostponedMessages">
            <summary>Gets the collection of postponed messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchBlock`1.BatchBlockTargetCore.DebuggingInformation.NumberOfBatchesCompleted">
            <summary>Gets the number of batches that have been completed.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2">
            <summary>
            Provides a dataflow block that batches a specified number of inputs of potentially differing types
            provided to one or more of its targets.
            </summary>
            <typeparam name="T1">Specifies the type of data accepted by the block's first target.</typeparam>
            <typeparam name="T2">Specifies the type of data accepted by the block's second target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2._batchSize">
            <summary>The size of the batches generated by this BatchedJoin.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2._sharedResources">
            <summary>State shared among the targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2._target1">
            <summary>The target providing inputs of type T1.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2._target2">
            <summary>The target providing inputs of type T2.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2._source">
            <summary>The source side.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.#ctor(System.Int32)">
            <summary>Initializes this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2"/> with the specified configuration.</summary>
            <param name="batchSize">The number of items to group into a batch.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.#ctor(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2"/> with the specified configuration.</summary>
            <param name="batchSize">The number of items to group into a batch.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.BatchSize">
            <summary>Gets the size of the batches generated by this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.Target1">
            <summary>Gets a target that may be used to offer messages of the first type.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.Target2">
            <summary>Gets a target that may be used to offer messages of the second type.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.TryReceive(System.Predicate{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}},System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.TryReceiveAll(System.Collections.Generic.IList{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{System#Collections#Generic#IList{T1},System#Collections#Generic#IList{T2}}}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{System#Collections#Generic#IList{T1},System#Collections#Generic#IList{T2}}}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{System#Collections#Generic#IList{T1},System#Collections#Generic#IList{T2}}}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1}}})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.CompleteEachTarget">
            <summary>
            Invokes Complete on each target
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView">
            <summary>Provides a debugger type proxy for the Transform.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView._batchedJoinBlock">
            <summary>The block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.#ctor(System.Threading.Tasks.Dataflow.BatchedJoinBlock{`0,`1})">
            <summary>Initializes the debug view.</summary>
            <param name="batchedJoinBlock">The batched join being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.BatchesCreated">
            <summary>Gets the number of batches created.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.RemainingItemsForBatch">
            <summary>Gets the number of items remaining to form a batch.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.BatchSize">
            <summary>Gets the size of the batches generated by this BatchedJoin.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.Target1">
            <summary>Gets the first target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.Target2">
            <summary>Gets the second target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2.DebugView.NextMessageReservedFor">
            <summary>Gets the target that holds a reservation on the next message, if any.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3">
            <summary>
            Provides a dataflow block that batches a specified number of inputs of potentially differing types
            provided to one or more of its targets.
            </summary>
            <typeparam name="T1">Specifies the type of data accepted by the block's first target.</typeparam>
            <typeparam name="T2">Specifies the type of data accepted by the block's second target.</typeparam>
            <typeparam name="T3">Specifies the type of data accepted by the block's third target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3._batchSize">
            <summary>The size of the batches generated by this BatchedJoin.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3._sharedResources">
            <summary>State shared among the targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3._target1">
            <summary>The target providing inputs of type T1.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3._target2">
            <summary>The target providing inputs of type T2.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3._target3">
            <summary>The target providing inputs of type T3.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3._source">
            <summary>The source side.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.#ctor(System.Int32)">
            <summary>Initializes this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3"/> with the specified configuration.</summary>
            <param name="batchSize">The number of items to group into a batch.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.#ctor(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3"/> with the specified configuration.</summary>
            <param name="batchSize">The number of items to group into a batch.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`2"/>.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="batchSize"/> must be positive.</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.BatchSize">
            <summary>Gets the size of the batches generated by this <see cref="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3"/>.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.Target1">
            <summary>Gets a target that may be used to offer messages of the first type.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.Target2">
            <summary>Gets a target that may be used to offer messages of the second type.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.Target3">
            <summary>Gets a target that may be used to offer messages of the third type.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.TryReceive(System.Predicate{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}},System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.TryReceiveAll(System.Collections.Generic.IList{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{System#Collections#Generic#IList{T1},System#Collections#Generic#IList{T2},System#Collections#Generic#IList{T3}}}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{System#Collections#Generic#IList{T1},System#Collections#Generic#IList{T2},System#Collections#Generic#IList{T3}}}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{System#Collections#Generic#IList{T1},System#Collections#Generic#IList{T2},System#Collections#Generic#IList{T3}}}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{System.Collections.Generic.IList{`0},System.Collections.Generic.IList{`1},System.Collections.Generic.IList{`2}}})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.CompleteEachTarget">
            <summary>
            Invokes Complete on each target
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView">
            <summary>Provides a debugger type proxy for the Transform.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView._batchedJoinBlock">
            <summary>The block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.#ctor(System.Threading.Tasks.Dataflow.BatchedJoinBlock{`0,`1,`2})">
            <summary>Initializes the debug view.</summary>
            <param name="batchedJoinBlock">The batched join being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.BatchesCreated">
            <summary>Gets the number of batches created.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.RemainingItemsForBatch">
            <summary>Gets the number of items remaining to form a batch.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.BatchSize">
            <summary>Gets the size of the batches generated by this BatchedJoin.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.Target1">
            <summary>Gets the first target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.Target2">
            <summary>Gets the second target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.Target3">
            <summary>Gets the second target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BatchedJoinBlock`3.DebugView.NextMessageReservedFor">
            <summary>Gets the target that holds a reservation on the next message, if any.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1">
            <summary>Provides the target used in a BatchedJoin.</summary>
            <typeparam name="T">Specifies the type of data accepted by this target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1._sharedResources">
            <summary>The shared resources used by all targets associated with the same batched join instance.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1._decliningPermanently">
            <summary>Whether this target is declining future messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1._messages">
            <summary>Input messages for the next batch.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.#ctor(System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources)">
            <summary>Initializes the target.</summary>
            <param name="sharedResources">The shared resources used by all targets associated with this batched join.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.Count">
            <summary>Gets the number of messages buffered in this target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.GetAndEmptyMessages">
            <summary>Gets the messages buffered by this target and then empties the collection.</summary>
            <returns>The messages from the target.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.DebugView">
            <summary>Provides a debugger type proxy for the Transform.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.DebugView._batchedJoinBlockTarget">
            <summary>The batched join block target being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="batchedJoinBlockTarget">The batched join target being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTarget`1.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources">
            <summary>Provides a container for resources shared across all targets used by the same BatchedJoinBlock instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources.#ctor(System.Int32,System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions,System.Action,System.Action,System.Action{System.Exception},System.Action)">
            <summary>Initializes the shared resources.</summary>
            <param name="batchSize">The size of a batch to create.</param>
            <param name="dataflowBlockOptions">The options used to configure the shared resources.  Assumed to be immutable.</param>
            <param name="batchSizeReachedAction">The action to invoke when a batch is completed.</param>
            <param name="allTargetsDecliningAction">The action to invoke when no more targets are accepting input.</param>
            <param name="exceptionAction">The action to invoke when an exception needs to be logged.</param>
            <param name="completionAction">The action to invoke when completing, typically invoked due to a call to Fault.</param>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._incomingLock">
            <summary>
            A lock used to synchronize all incoming messages on all targets. It protects all of the rest 
            of the shared Resources's state and will be held while invoking the delegates.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._batchSize">
            <summary>The size of the batches to generate.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._batchSizeReachedAction">
            <summary>The action to invoke when enough elements have been accumulated to make a batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._allTargetsDecliningPermanentlyAction">
            <summary>The action to invoke when all targets are declining further messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._exceptionAction">
            <summary>The action to invoke when an exception has to be logged.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._completionAction">
            <summary>The action to invoke when the owning block has to be completed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._remainingItemsInBatch">
            <summary>The number of items remaining to form a batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._remainingAliveTargets">
            <summary>The number of targets still alive (i.e. not declining all further messages).</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._decliningPermanently">
            <summary>Whether all targets should decline all further messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BatchedJoinBlockTargetSharedResources._batchesCreated">
            <summary>The number of batches created.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1">
            <summary>Provides the target used in a Join.</summary>
            <typeparam name="T">Specifies the type of data accepted by this target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1._sharedResources">
            <summary>The shared resources used by all targets associated with the same join instance.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1._completionTask">
            <summary>A task representing the completion of the block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1._messages">
            <summary>Input messages for the next batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1._nonGreedy">
            <summary>State used when in non-greedy mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1._decliningPermanently">
            <summary>Whether this target is declining future messages.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.NonGreedyState">
            <summary>State used only when in non-greedy mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.NonGreedyState.PostponedMessages">
            <summary>Collection of the last postponed message per source.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.NonGreedyState.ReservedMessage">
            <summary>The currently reserved message.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.NonGreedyState.ConsumedMessage">
            <summary>The currently consumed message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.#ctor(System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources)">
            <summary>Initializes the target.</summary>
            <param name="sharedResources">The shared resources used by all targets associated with this join.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.GetOneMessage">
            <summary>Gets a message buffered by this target.</summary>
            <remarks>This must be called while holding the shared Resources's incoming lock.</remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.IsDecliningPermanently">
            <summary>Gets whether the target is declining messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.HasAtLeastOneMessageAvailable">
            <summary>Gets whether the target has at least one message available.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.HasAtLeastOnePostponedMessage">
            <summary>Gets whether the target has at least one postponed message.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.NumberOfMessagesAvailableOrPostponed">
            <summary>Gets the number of messages available or postponed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.HasTheHighestNumberOfMessagesAvailable">
            <summary>Gets whether this target has the highest number of available/buffered messages. This is only valid in greedy mode.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.ReserveOneMessage">
            <summary>Reserves one of the postponed messages.</summary>
            <returns>true if a message was reserved; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.ConsumeReservedMessage">
            <summary>Consumes a reserved message.</summary>
            <returns>true if a message was consumed; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.ConsumeOnePostponedMessage">
            <summary>Consumes up to one postponed message in greedy bounded mode.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.CompleteIfLastJoinIsFeasible">
            <summary>
            Start declining if the number of joins we've already made plus the number we can 
            make from data already enqueued meets our quota.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.ReleaseReservedMessage">
            <summary>Releases the reservation on a reserved message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.ClearReservation">
            <summary>Unconditionally clears a reserved message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.CompleteOncePossible">
            <summary>Completes the target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.CompleteCore(System.Exception,System.Boolean,System.Boolean)">
            <summary>Completes/faults the block.
            In general, it is not safe to pass releaseReservedMessages:true, because releasing of reserved messages
            is done without taking a lock. We pass releaseReservedMessages:true only when an exception has been 
            caught inside the message processing loop which is a single instance at any given moment.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.CompletionTaskInternal">
            <summary>The completion task on Join targets is only hidden from the public. It still exists for internal purposes.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.InputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.DebugView">
            <summary>Provides a debugger type proxy for the Transform.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.DebugView._joinBlockTarget">
            <summary>The join block target being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="joinBlockTarget">The join being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTarget`1.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase">
            <summary>Provides a non-generic base type for all join targets.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.IsDecliningPermanently">
            <summary>Whether the target is postponing messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.HasAtLeastOneMessageAvailable">
            <summary>Whether the target has at least one message available.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.HasAtLeastOnePostponedMessage">
            <summary>Whether the target has at least one message postponed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.NumberOfMessagesAvailableOrPostponed">
            <summary>Gets the number of messages available or postponed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.HasTheHighestNumberOfMessagesAvailable">
            <summary>Gets whether the target has the highest number of messages available. (A tie yields true.)</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.ReserveOneMessage">
            <summary>Reserves a single message.</summary>
            <returns>Whether a message was reserved.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.ConsumeReservedMessage">
            <summary>Consumes any previously reserved message.</summary>
            <returns>Whether a message was consumed.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.ConsumeOnePostponedMessage">
            <summary>Consumes up to one postponed message in greedy bounded mode.</summary>
            <returns>Whether a message was consumed.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.ReleaseReservedMessage">
            <summary>Releases any previously reserved message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.ClearReservation">
            <summary>Unconditionally clears a reserved message. This is only invoked in case of an exception.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.Complete">
            <summary>Access point to the corresponding API method.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.CompleteCore(System.Exception,System.Boolean,System.Boolean)">
            <summary>Internal implementation of the corresponding API method.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase.CompleteOncePossible">
            <summary>Completes the target.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources">
            <summary>Provides a container for resources shared across all targets used by the same BatchedJoin instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.#ctor(System.Threading.Tasks.Dataflow.IDataflowBlock,System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetBase[],System.Action,System.Action{System.Exception},System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes the shared resources.</summary>
            <param name="ownerJoin">
            The join block that owns these shared resources.
            </param>
            <param name="targets">
            The array of targets associated with the join. Also doubles as the sync object used to synchronize targets.
            </param>
            <param name="joinFilledAction">The delegate to invoke when enough messages have been consumed to fulfill the join.</param>
            <param name="exceptionAction">The delegate to invoke when a target encounters an error.</param>
            <param name="dataflowBlockOptions">The options for the join.</param>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._targets">
            <summary>All of the targets associated with the join.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._exceptionAction">
            <summary>The delegate to invoke when a target encounters an error.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._joinFilledAction">
            <summary>The delegate to invoke when enough messages have been consumed to fulfill the join.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._dataflowBlockOptions">
            <summary>The options for the join.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._boundingState">
            <summary>Bounding state for when the block is executing in bounded mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._decliningPermanently">
            <summary>Whether all targets should decline all further messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._taskForInputProcessing">
            <summary>The task used to process messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._hasExceptions">
            <summary>Whether any exceptions have been generated and stored into the source core.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._joinsCreated">
            <summary>The number of joins this block has created.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources._completionReserved">
            <summary>A task has reserved the right to run the completion routine.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.IncomingLock">
            <summary>Gets the lock used to synchronize all incoming messages on all targets.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.CompleteEachTarget">
            <summary>Invokes Complete on each target with dropping buffered messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.AllTargetsHaveAtLeastOneMessage">
            <summary>Gets whether all of the targets have at least one message in their queues.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.TargetsHaveAtLeastOneMessageQueuedOrPostponed">
            <summary>Gets whether all of the targets have at least one message in their queues or have at least one postponed message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.RetrievePostponedItemsNonGreedy">
            <summary>Retrieves postponed items if we have enough to make a batch.</summary>
            <returns>true if input messages for a batch were consumed (all or none); false otherwise.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.RetrievePostponedItemsGreedyBounded">
            <summary>Retrieves up to one postponed item through each target.</summary>
            <returns>true if at least one input message was consumed (through any target); false otherwise.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.CanceledOrFaulted">
            <summary>Gets whether the target has had cancellation requested or an exception has occurred.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.JoinNeedsProcessing">
            <summary>
            Gets whether the join is in a state where processing can be done, meaning there's data
            to be processed and the block is in a state where such processing is allowed.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.ProcessAsyncIfNecessary(System.Boolean)">
            <summary>Called when new messages are available to be processed.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.ProcessAsyncIfNecessary_Slow(System.Boolean)">
            <summary>
            Slow path for ProcessAsyncIfNecessary. 
            Separating out the slow path into its own method makes it more likely that the fast path method will get inlined.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.CompleteBlockIfPossible">
            <summary>Completes the join block if possible.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.ProcessMessagesLoopCore">
            <summary>Task body used to process messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.OnItemsRemoved(System.Int32)">
            <summary>Notifies the block that one or more items was removed from the queue.</summary>
            <param name="numItemsRemoved">The number of items removed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.JoinBlockTargetSharedResources.DebuggerDisplayContent">
            <summary>Gets the object to display in the debugger display attribute.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Disposables">
            <summary>Provider of disposables that run actions.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Nop">
            <summary>An IDisposable that does nothing.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Disposables.Create``2(System.Action{``0,``1},``0,``1)">
            <summary>Creates an IDisposable that runs an action when disposed.</summary>
            <typeparam name="T1">Specifies the type of the first argument.</typeparam>
            <typeparam name="T2">Specifies the type of the second argument.</typeparam>
            <param name="action">The action to invoke.</param>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <returns>The created disposable.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Disposables.Create``3(System.Action{``0,``1,``2},``0,``1,``2)">
            <summary>Creates an IDisposable that runs an action when disposed.</summary>
            <typeparam name="T1">Specifies the type of the first argument.</typeparam>
            <typeparam name="T2">Specifies the type of the second argument.</typeparam>
            <typeparam name="T3">Specifies the type of the third argument.</typeparam>
            <param name="action">The action to invoke.</param>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
            <returns>The created disposable.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Disposables.NopDisposable">
            <summary>A disposable that's a nop.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2">
            <summary>An IDisposable that will run a delegate when disposed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2._arg1">
            <summary>First state argument.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2._arg2">
            <summary>Second state argument.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2._action">
            <summary>The action to run when disposed. Null if disposed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2.#ctor(System.Action{`0,`1},`0,`1)">
            <summary>Initializes the ActionOnDispose.</summary>
            <param name="action">The action to run when disposed.</param>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2.Disposed">
            <summary>Gets whether the IDisposable has been disposed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`2.System#IDisposable#Dispose">
            <summary>Invoke the action.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3">
            <summary>An IDisposable that will run a delegate when disposed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3._arg1">
            <summary>First state argument.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3._arg2">
            <summary>Second state argument.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3._arg3">
            <summary>Third state argument.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3._action">
            <summary>The action to run when disposed. Null if disposed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3.#ctor(System.Action{`0,`1,`2},`0,`1,`2)">
            <summary>Initializes the ActionOnDispose.</summary>
            <param name="action">The action to run when disposed.</param>
            <param name="arg1">The first argument.</param>
            <param name="arg2">The second argument.</param>
            <param name="arg3">The third argument.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3.Disposed">
            <summary>Gets whether the IDisposable has been disposed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Disposables.Disposable`3.System#IDisposable#Dispose">
            <summary>Invoke the action.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Common">
            <summary>Internal helper utilities.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.INVALID_REORDERING_ID">
            <summary>
            An invalid ID to assign for reordering purposes.  This value is chosen to be the last of the 64-bit integers that
            could ever be assigned as a reordering ID.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.SINGLE_MESSAGE_ID">
            <summary>A well-known message ID for code that will send exactly one message or 
            where the exact message ID is not important.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.SingleMessageHeader">
            <summary>A perf optimization for caching a well-known message header instead of
            constructing one every time it is needed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.CompletedTaskWithTrueResult">
            <summary>The cached completed Task{bool} with a result of true.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.CompletedTaskWithFalseResult">
            <summary>The cached completed Task{bool} with a result of false.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.CompletedVoidResultTaskCompletionSource">
            <summary>The cached completed TaskCompletionSource{VoidResult}.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.ContractAssertMonitorStatus(System.Object,System.Boolean)">
            <summary>Asserts that a given synchronization object is either held or not held.</summary>
            <param name="syncObj">The monitor to check.</param>
            <param name="held">Whether we want to assert that it's currently held or not held.</param>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.KEEP_ALIVE_NUMBER_OF_MESSAGES_THRESHOLD">
            <summary>Keeping alive processing tasks: maximum number of processed messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.KEEP_ALIVE_BAN_COUNT">
            <summary>Keeping alive processing tasks: do not attempt this many times.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Common.KeepAlivePredicate`2">
            <summary>A predicate type for TryKeepAliveUntil.</summary>
            <param name="stateIn">Input state for the predicate in order to avoid closure allocations.</param>
            <param name="stateOut">Output state for the predicate in order to avoid closure allocations.</param>
            <returns>The state of the predicate.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.TryKeepAliveUntil``2(System.Threading.Tasks.Dataflow.Internal.Common.KeepAlivePredicate{``0,``1},``0,``1@)">
            <summary>Actively waits for a predicate to become true.</summary>
            <param name="predicate">The predicate to become true.</param>
            <param name="stateIn">Input state for the predicate in order to avoid closure allocations.</param>
            <param name="stateOut">Output state for the predicate in order to avoid closure allocations.</param>
            <returns>True if the predicate was evaluated and it returned true. False otherwise.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.UnwrapWeakReference``1(System.Object)">
            <summary>Unwraps an instance T from object state that is a WeakReference to that instance.</summary>
            <typeparam name="T">The type of the data to be unwrapped.</typeparam>
            <param name="state">The weak reference.</param>
            <returns>The T instance.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.GetBlockId(System.Threading.Tasks.Dataflow.IDataflowBlock)">
            <summary>Gets an ID for the dataflow block.</summary>
            <param name="block">The dataflow block.</param>
            <returns>An ID for the dataflow block.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.GetNameForDebugger(System.Threading.Tasks.Dataflow.IDataflowBlock,System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Gets the name for the specified block, suitable to be rendered in a debugger window.</summary>
            <param name="block">The block for which a name is needed.</param>
            <param name="options">
            The options to use when rendering the name. If no options are provided, the block's name is used directly.
            </param>
            <returns>The name of the object.</returns>
            <remarks>This is used from DebuggerDisplay attributes.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.IsCooperativeCancellation(System.Exception)">
            <summary>
            Gets whether the exception represents a cooperative cancellation acknowledgment.
            </summary>
            <param name="exception">The exception to check.</param>
            <returns>true if this exception represents a cooperative cancellation acknowledgment; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.WireCancellationToComplete(System.Threading.CancellationToken,System.Threading.Tasks.Task,System.Action{System.Object},System.Object)">
            <summary>Registers a block for cancellation by completing when cancellation is requested.</summary>
            <param name="cancellationToken">The block's cancellation token.</param>
            <param name="completionTask">The task that will complete when the block is completely done processing.</param>
            <param name="completeAction">An action that will decline permanently on the state passed to it.</param>
            <param name="completeState">The block on which to decline permanently.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.InitializeStackTrace(System.Exception)">
            <summary>Initializes the stack trace and watson bucket of an inactive exception.</summary>
            <param name="exception">The exception to initialize.</param>
            <returns>The initialized exception.</returns>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.EXCEPTIONDATAKEY_DATAFLOWMESSAGEVALUE">
            <summary>The name of the key in an Exception's Data collection used to store information on a dataflow message.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.StoreDataflowMessageValueIntoExceptionData``1(System.Exception,``0,System.Boolean)">
            <summary>Stores details on a dataflow message into an Exception's Data collection.</summary>
            <typeparam name="T">Specifies the type of data stored in the message.</typeparam>
            <param name="exc">The Exception whose Data collection should store message information.</param>
            <param name="messageValue">The message information to be stored.</param>
            <param name="targetInnerExceptions">Whether to store the data into the exception's inner exception(s) in addition to the exception itself.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.StoreStringIntoExceptionData(System.Exception,System.String,System.String)">
            <summary>Stores the specified string value into the specified key slot of the specified exception's data dictionary.</summary>
            <param name="exception">The exception into which the key/value should be stored.</param>
            <param name="key">The key.</param>
            <param name="value">The value to be serialized as a string and stored.</param>
            <remarks>If the key is already present in the exception's data dictionary, the value is not overwritten.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.ThrowAsync(System.Exception)">
            <summary>Throws an exception asynchronously on the thread pool.</summary>
            <param name="error">The exception to throw.</param>
            <remarks>
            This function is used when an exception needs to be propagated from a thread
            other than the current context.  This could happen, for example, if the exception
            should cause the standard CLR exception escalation behavior, but we're inside
            of a task that will squirrel the exception away.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.AddException(System.Collections.Generic.List{System.Exception}@,System.Exception,System.Boolean)">
            <summary>Adds the exception to the list, first initializing the list if the list is null.</summary>
            <param name="list">The list to add the exception to, and initialize if null.</param>
            <param name="exception">The exception to add or whose inner exception(s) should be added.</param>
            <param name="unwrapInnerExceptions">Unwrap and add the inner exception(s) rather than the specified exception directly.</param>
            <remarks>This method is not thread-safe, in that it manipulates <paramref name="list"/> without any synchronization.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.CreateCachedBooleanTask(System.Boolean)">
            <summary>Creates a task we can cache for the desired Boolean result.</summary>
            <param name="value">The value of the Boolean.</param>
            <returns>A task that may be cached.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.CreateCachedTaskCompletionSource``1">
            <summary>Creates a TaskCompletionSource{T} completed with a value of default(T) that we can cache.</summary>
            <returns>Completed TaskCompletionSource{T} that may be cached.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.CreateTaskFromException``1(System.Exception)">
            <summary>Creates a task faulted with the specified exception.</summary>
            <typeparam name="TResult">Specifies the type of the result for this task.</typeparam>
            <param name="exception">The exception with which to complete the task.</param>
            <returns>The faulted task.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.CreateTaskFromCancellation``1(System.Threading.CancellationToken)">
            <summary>Creates a task canceled with the specified cancellation token.</summary>
            <typeparam name="TResult">Specifies the type of the result for this task.</typeparam>
            <returns>The canceled task.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.GetPotentiallyNotSupportedCompletionTask(System.Threading.Tasks.Dataflow.IDataflowBlock)">
            <summary>Gets the completion task of a block, and protects against common cases of the completion task not being implemented or supported.</summary>
            <param name="block">The block.</param>
            <returns>The completion task, or null if the block's completion task is not implemented or supported.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.CreateUnlinker``1(System.Object,System.Threading.Tasks.Dataflow.Internal.TargetRegistry{``0},System.Threading.Tasks.Dataflow.ITargetBlock{``0})">
            <summary>
            Creates an IDisposable that, when disposed, will acquire the outgoing lock while removing 
            the target block from the target registry.
            </summary>
            <typeparam name="TOutput">Specifies the type of data in the block.</typeparam>
            <param name="outgoingLock">The outgoing lock used to protect the target registry.</param>
            <param name="targetRegistry">The target registry from which the target should be removed.</param>
            <param name="targetBlock">The target to remove from the registry.</param>
            <returns>An IDisposable that will unregister the target block from the registry while holding the outgoing lock.</returns>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.InfiniteTimeSpan">
            <summary>An infinite TimeSpan.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.IsValidTimeout(System.TimeSpan)">
            <summary>Validates that a timeout either is -1 or is non-negative and within the range of an Int32.</summary>
            <param name="timeout">The timeout to validate.</param>
            <returns>true if the timeout is valid; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.GetContinuationOptions(System.Threading.Tasks.TaskContinuationOptions)">
            <summary>Gets the options to use for continuation tasks.</summary>
            <param name="toInclude">Any options to include in the result.</param>
            <returns>The options to use.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.GetCreationOptionsForTask(System.Boolean)">
            <summary>Gets the options to use for tasks.</summary>
            <param name="isReplacementReplica">If this task is being created to replace another.</param>
            <remarks>
            These options should be used for all tasks that have the potential to run user code or
            that are repeatedly spawned and thus need a modicum of fair treatment.
            </remarks>
            <returns>The options to use.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.StartTaskSafe(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler)">
            <summary>Starts an already constructed task with handling and observing exceptions that may come from the scheduling process.</summary>
            <param name="task">Task to be started.</param>
            <param name="scheduler">TaskScheduler to schedule the task on.</param>
            <returns>null on success, an exception reference on scheduling error. In the latter case, the task reference is nulled out.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.StartTaskSafeCore(System.Threading.Tasks.Task,System.Threading.Tasks.TaskScheduler)">
            <summary>Starts an already constructed task with handling and observing exceptions that may come from the scheduling process.</summary>
            <param name="task">Task to be started.</param>
            <param name="scheduler">TaskScheduler to schedule the task on.</param>
            <returns>null on success, an exception reference on scheduling error. In the latter case, the task reference is nulled out.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.ReleaseAllPostponedMessages``1(System.Threading.Tasks.Dataflow.ITargetBlock{``0},System.Threading.Tasks.Dataflow.Internal.QueuedMap{System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.Tasks.Dataflow.DataflowMessageHeader},System.Collections.Generic.List{System.Exception}@)">
            <summary>Pops and explicitly releases postponed messages after the block is done with processing.</summary>
            <remarks>No locks should be held at this time. Unfortunately we cannot assert that.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.AsyncExceptionHandler">
            <summary>Cache ThrowAsync to avoid allocations when it is passed into PropagateCompletionXxx.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.PropagateCompletion(System.Threading.Tasks.Task,System.Threading.Tasks.Dataflow.IDataflowBlock,System.Action{System.Exception})">
            <summary>
            Propagates completion of sourceCompletionTask to target synchronously.
            </summary>
            <param name="sourceCompletionTask">The task whose completion is to be propagated. It must be completed.</param>
            <param name="target">The block where completion is propagated.</param>
            <param name="exceptionHandler">Handler for exceptions from the target. May be null which would propagate the exception to the caller.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.PropagateCompletionAsContinuation(System.Threading.Tasks.Task,System.Threading.Tasks.Dataflow.IDataflowBlock)">
            <summary>
            Creates a continuation off sourceCompletionTask to complete target. See PropagateCompletion.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.Common.PropagateCompletionOnceCompleted(System.Threading.Tasks.Task,System.Threading.Tasks.Dataflow.IDataflowBlock)">
            <summary>
            Propagates completion of sourceCompletionTask to target based on sourceCompletionTask's current state. See PropagateCompletion.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Common.CachedGenericDelegates`1">
            <summary>Static class used to cache generic delegates the C# compiler doesn't cache by default.</summary>
            <remarks>Without this, we end up allocating the generic delegate each time the operation is used.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.CachedGenericDelegates`1.DefaultTResultFunc">
            <summary>A function that returns the default value of T.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Common.CachedGenericDelegates`1.CreateUnlinkerShimAction">
            <summary>
            A function to use as the body of ActionOnDispose in CreateUnlinkerShim.
            Passed a tuple of the sync obj, the target registry, and the target block as the state parameter.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.BoundingState">
            <summary>State used only when bounding.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BoundingState.BoundedCapacity">
            <summary>The maximum number of messages allowed to be buffered.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BoundingState.CurrentCount">
            <summary>The number of messages currently stored.</summary>
            <remarks>
            This value may temporarily be higher than the actual number stored.  
            That's ok, we just can't accept any new messages if CurrentCount >= BoundedCapacity.
            Worst case is that we may temporarily have fewer items in the block than our maximum allows,
            but we'll never have more.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BoundingState.#ctor(System.Int32)">
            <summary>Initializes the BoundingState.</summary>
            <param name="boundedCapacity">The positive bounded capacity.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BoundingState.CountIsLessThanBound">
            <summary>Gets whether there's room available to add another message.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1">
            <summary>Stated used only when bounding and when postponed messages are stored.</summary>
            <typeparam name="TInput">Specifies the type of input messages.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1.PostponedMessages">
            <summary>Queue of postponed messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1.OutstandingTransfers">
            <summary>
            The number of transfers from the postponement queue to the input queue currently being processed.
            </summary>
            <remarks>
            Blocks that use TargetCore need to transfer messages from the postponed queue to the input messages
            queue.  While doing that, new incoming messages may arrive, and if they view the postponed queue
            as being empty (after the block has removed the last postponed message and is consuming it, before
            storing it into the input queue), they might go directly into the input queue... that will then mess
            up the ordering between those postponed messages and the newly incoming messages.  To address that,
            OutstandingTransfers is used to track the number of transfers currently in progress.  Incoming
            messages must be postponed not only if there are already any postponed messages, but also if
            there are any transfers in progress (i.e. this value is > 0).  It's an integer because the DOP could
            be greater than 1, and thus we need to ref count multiple transfers that might be in progress.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1.#ctor(System.Int32)">
            <summary>Initializes the BoundingState.</summary>
            <param name="boundedCapacity">The positive bounded capacity.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponed`1.PostponedMessagesCountForDebugger">
            <summary>Gets the number of postponed messages for the debugger.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponedAndTask`1">
            <summary>Stated used only when bounding and when postponed messages and a task are stored.</summary>
            <typeparam name="TInput">Specifies the type of input messages.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponedAndTask`1.TaskForInputProcessing">
            <summary>The task used to process messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.BoundingStateWithPostponedAndTask`1.#ctor(System.Int32)">
            <summary>Initializes the BoundingState.</summary>
            <param name="boundedCapacity">The positive bounded capacity.</param>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.VoidResult">
            <summary>
            Type used with TaskCompletionSource(Of TResult) as the TResult
            to ensure that the resulting task can't be upcast to something
            that in the future could lead to compat problems.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider">
            <summary>Provides an event source for tracing Dataflow information.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.Log">
            <summary>
            Defines the singleton instance for the dataflow ETW provider.
            The dataflow provider GUID is {16F53577-E41D-43D4-B47E-C17025BF4025}.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.#ctor">
            <summary>Prevent external instantiation.  All logging should go through the Log instance.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.ALL_KEYWORDS">
            <summary>Enabled for all keywords.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.DATAFLOWBLOCKCREATED_EVENTID">
            <summary>The event ID for when we encounter a new dataflow block object that hasn't had its name traced to the trace file.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.TASKLAUNCHED_EVENTID">
            <summary>The event ID for the task launched event.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BLOCKCOMPLETED_EVENTID">
            <summary>The event ID for the block completed event.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BLOCKLINKED_EVENTID">
            <summary>The event ID for the block linked event.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BLOCKUNLINKED_EVENTID">
            <summary>The event ID for the block unlinked event.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.DataflowBlockCreated(System.Threading.Tasks.Dataflow.IDataflowBlock,System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Trace an event for when a new block is instantiated.</summary>
            <param name="block">The dataflow block that was created.</param>
            <param name="dataflowBlockOptions">The options with which the block was created.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.TaskLaunchedForMessageHandling(System.Threading.Tasks.Dataflow.IDataflowBlock,System.Threading.Tasks.Task,System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.TaskLaunchedReason,System.Int32)">
            <summary>Trace an event for a block launching a task to handle messages.</summary>
            <param name="block">The owner block launching a task.</param>
            <param name="task">The task being launched for processing.</param>
            <param name="reason">The reason the task is being launched.</param>
            <param name="availableMessages">The number of messages available to be handled by the task.</param>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.TaskLaunchedReason">
            <summary>Describes the reason a task is being launched.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.TaskLaunchedReason.ProcessingInputMessages">
            <summary>A task is being launched to process incoming messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.TaskLaunchedReason.OfferingOutputMessages">
            <summary>A task is being launched to offer outgoing messages to linked targets.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.DataflowBlockCompleted(System.Threading.Tasks.Dataflow.IDataflowBlock)">
            <summary>Trace an event for a block completing.</summary>
            <param name="block">The block that's completing.</param>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BlockCompletionReason">
            <summary>Describes the reason a block completed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BlockCompletionReason.RanToCompletion">
            <summary>The block completed successfully.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BlockCompletionReason.Faulted">
            <summary>The block completed due to an error.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.BlockCompletionReason.Canceled">
            <summary>The block completed due to cancellation.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.DataflowBlockLinking``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.Tasks.Dataflow.ITargetBlock{``0})">
            <summary>Trace an event for a block linking.</summary>
            <param name="source">The source block linking to a target.</param>
            <param name="target">The target block being linked from a source.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.DataflowEtwProvider.DataflowBlockUnlinking``1(System.Threading.Tasks.Dataflow.ISourceBlock{``0},System.Threading.Tasks.Dataflow.ITargetBlock{``0})">
            <summary>Trace an event for a block unlinking.</summary>
            <param name="source">The source block unlinking from a target.</param>
            <param name="target">The target block being unlinked from a source.</param>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`2">
            <summary>Debugger type proxy for an enumerable of T.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`2._enumerable">
            <summary>The enumerable being visualized.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`2.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{`0,`1}})">
            <summary>Initializes the debug view.</summary>
            <param name="enumerable">The enumerable being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`2.Items">
            <summary>Gets the contents of the list.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`1">
            <summary>Debugger type proxy for an enumerable of T.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`1._enumerable">
            <summary>The enumerable being visualized.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="enumerable">The enumerable being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.EnumerableDebugView`1.Items">
            <summary>Gets the contents of the list.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.IDebuggerDisplay">
            <summary>Implemented to provide customizable data for debugger displays.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.IDebuggerDisplay.Content">
            <summary>The object to be displayed as the content of a DebuggerDisplayAttribute.</summary>
            <remarks>
            The property returns an object to allow the debugger to interpret arbitrary .NET objects.
            The return value may be, but need not be limited to be, a string.
            </remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1">
            <summary>Provides a simple, immutable array.</summary>
            <typeparam name="T">Specifies the type of the data stored in the array.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.s_empty">
            <summary>An empty array.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1._array">
            <summary>The immutable data in this array instance.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.Empty">
            <summary>Gets the empty array.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.#ctor(`0[])">
            <summary>Initializes the immutable array with the specified elements.</summary>
            <param name="elements">The element array to use for this array's data.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.Add(`0)">
            <summary>Creates a new immutable array from this array and the additional element.</summary>
            <param name="item">The item to add.</param>
            <returns>The new array.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.Remove(`0)">
            <summary>Creates a new immutable array from this array and without the specified element.</summary>
            <param name="item">The item to remove.</param>
            <returns>The new array.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.Count">
            <summary>Gets the number of elements in this array.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.Contains(`0)">
            <summary>Gets whether the array contains the specified item.</summary>
            <param name="item">The item to lookup.</param>
            <returns>true if the array contains the item; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.GetEnumerator">
            <summary>Returns an enumerator that iterates through the collection.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ImmutableArray`1.ToArray">
            <summary>Returns the contents of the collection as an array.</summary>
            <returns>An array containing the contents of this collection.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.Padding">
            <summary>A placeholder class for common padding constants and eventually routines.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.Padding.CACHE_LINE_SIZE">
            <summary>A size greater than or equal to the size of the most common CPU cache lines.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.PaddingForInt32">
            <summary>Padding structure used to minimize false sharing in SingleProducerSingleConsumerQueue{T}.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.PaddedInt64">
            <summary>Value type that contains single Int64 value padded on both sides.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2">
            <summary>
            Provides a data structure that supports pushing and popping key/value pairs.
            Pushing a key/value pair for which the key already exists results in overwriting
            the existing key entry's value.
            </summary>
            <typeparam name="TKey">Specifies the type of keys in the map.</typeparam>
            <typeparam name="TValue">Specifies the type of values in the map.</typeparam>
            <remarks>This type is not thread-safe.</remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1">
            <summary>
            A queue structure that uses an array-based list to store its items
            and that supports overwriting elements at specific indices.
            </summary>
            <typeparam name="T">The type of the items storedin the queue</typeparam>
            <remarks>This type is not thread-safe.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1.TERMINATOR_INDEX">
            <summary>Terminator index.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1._storage">
            <summary>
            The queue where the items will be stored.
            The key of each entry is the index of the next entry in the queue.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1._headIndex">
            <summary>Index of the first queue item.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1._tailIndex">
            <summary>Index of the last queue item.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1._freeIndex">
            <summary>Index of the first free slot.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1.#ctor">
            <summary>Initializes the Queue instance.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1.#ctor(System.Int32)">
            <summary>Initializes the Queue instance.</summary>
            <param name="capacity">The capacity of the internal storage.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1.Enqueue(`2)">
            <summary>Enqueues an item.</summary>
            <param name="item">The item to be enqueued.</param>
            <returns>The index of the slot where item was stored.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1.TryDequeue(`2@)">
            <summary>Tries to dequeue an item.</summary>
            <param name="item">The item that is dequeued.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.ArrayBasedLinkedQueue`1.Replace(System.Int32,`2)">
            <summary>Replaces the item of a given slot.</summary>
            <param name="index">The index of the slot where the value should be replaced.</param>
            <param name="item">The item to be places.</param>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2._queue">
            <summary>The queue of elements.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2._mapKeyToIndex">
            <summary>A map from key to index into the list.</summary>
            <remarks>The correctness of this map relies on the list only having elements removed from its end.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.#ctor">
            <summary>Initializes the QueuedMap.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.#ctor(System.Int32)">
            <summary>Initializes the QueuedMap.</summary>
            <param name="capacity">The initial capacity of the data structure.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.Push(`0,`1)">
            <summary>Pushes a key/value pair into the data structure.</summary>
            <param name="key">The key for the pair.</param>
            <param name="value">The value for the pair.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.TryPop(System.Collections.Generic.KeyValuePair{`0,`1}@)">
            <summary>Try to pop the next element from the data structure.</summary>
            <param name="item">The popped pair.</param>
            <returns>true if an item could be popped; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.PopRange(System.Collections.Generic.KeyValuePair{`0,`1}[],System.Int32,System.Int32)">
            <summary>Tries to pop one or more elements from the data structure.</summary>
            <param name="items">The items array into which the popped elements should be stored.</param>
            <param name="arrayOffset">The offset into the array at which to start storing popped items.</param>
            <param name="count">The number of items to be popped.</param>
            <returns>The number of items popped, which may be less than the requested number if fewer existed in the data structure.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.QueuedMap`2.Count">
            <summary>Gets the number of items in the data structure.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.IReorderingBuffer">
            <summary>Base interface for reordering buffers.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.IReorderingBuffer.IgnoreItem(System.Int64)">
            <summary>Informs the reordering buffer not to expect the message with the specified id.</summary>
            <param name="id">The id of the message to be ignored.</param>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1">
            <summary>Provides a buffer that reorders items according to their incoming IDs.</summary>
            <typeparam name="TOutput">Specifies the type of data stored in the items being reordered.</typeparam>
            <remarks>
            This type expects the first item to be ID==0 and for all subsequent items
            to increase IDs sequentially.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1._owningSource">
            <summary>The source that owns this reordering buffer.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1._reorderingBuffer">
            <summary>A reordering buffer used when parallelism is employed and items may be completed out-of-order.</summary>
            <remarks>Also serves as the sync object to protect the contents of this class.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1._outputAction">
            <summary>Action used to output items in order.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1._nextReorderedIdToOutput">
            <summary>The ID of the next item that should be released from the reordering buffer.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.ValueLock">
            <summary>Gets the object used to synchronize all access to the reordering buffer's internals.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.#ctor(System.Object,System.Action{System.Object,`0})">
            <summary>Initializes the reordering buffer.</summary>
            <param name="owningSource">The source that owns this reordering buffer.</param>
            <param name="outputAction">The action to invoke when the next in-order item is available to be output.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.AddItem(System.Int64,`0,System.Boolean)">
            <summary>Stores the next item as it completes processing.</summary>
            <param name="id">The ID of the item.</param>
            <param name="item">The completed item.</param>
            <param name="itemIsValid">Specifies whether the item is valid (true) or just a placeholder (false).</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.AddItemIfNextAndTrusted(System.Int64,`0,System.Boolean)">
            <summary>
            Determines whether the specified id is next to be output, and if it is
            and if the item is "trusted" (meaning it may be output into the output
            action as-is), adds it.
            </summary>
            <param name="id">The id of the item.</param>
            <param name="item">The item.</param>
            <param name="isTrusted">
            Whether to allow the item to be output directly if it is the next item.
            </param>
            <returns>
            null if the item was added.
            true if the item was not added but is next in line.
            false if the item was not added and is not next in line.
            </returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.IgnoreItem(System.Int64)">
            <summary>Informs the reordering buffer not to expect the message with the specified id.</summary>
            <param name="id">The id of the message to be ignored.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.OutputNextItem(`0,System.Boolean)">
            <summary>Outputs the item.  The item must have already been confirmed to have the next ID.</summary>
            <param name="theNextItem">The item to output.</param>
            <param name="itemIsValid">Whether the item is valid.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.CountForDebugging">
            <summary>Gets a item count for debugging purposes.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.DebugView">
            <summary>Provides a debugger type proxy for the buffer.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.DebugView._buffer">
            <summary>The buffer being debugged.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="buffer">The buffer being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.DebugView.ItemsBuffered">
            <summary>Gets a dictionary of buffered items and their reordering IDs.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.ReorderingBuffer`1.DebugView.NextIdRequired">
            <summary>Gets the next ID required for outputting.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.SourceCore`1">
            <summary>Provides a core implementation for blocks that implement <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/>.</summary>
            <typeparam name="TOutput">Specifies the type of data supplied by the <see cref="T:System.Threading.Tasks.Dataflow.Internal.SourceCore`1"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._completionTask">
            <summary>A TaskCompletionSource that represents the completion of this block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._targetRegistry">
            <summary>A registry used to store all linked targets and information about them.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._messages">
            <summary>The output messages queued up to be received by consumers/targets.</summary>
            <remarks>
            The queue is only ever accessed by a single producer and single consumer at a time.  On the producer side,
            we require that AddMessage/AddMessages are the only places the queue is added to, and we require that those
            methods not be used concurrently with anything else.  All of our target halves today follow that restriction;
            for example, TransformBlock with DOP==1 will have at most a single task processing the user provided delegate,
            and thus at most one task calling AddMessage.  If it has a DOP > 1, it'll go through the ReorderingBuffer,
            which will use a lock to synchronize the output of all of the processing tasks such that only one is using
            AddMessage at a time.  On the consumer side of SourceCore, all consumption is protected by ValueLock, and thus
            all consumption is serialized.
            </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OutgoingLock">
            <summary>Gets the object to use as the outgoing lock.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.ValueLock">
            <summary>Gets the object to use as the value lock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._owningSource">
            <summary>The source utilizing this helper.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._dataflowBlockOptions">
            <summary>The options used to configure this block's execution.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._completeAction">
            <summary>
            An action to be invoked on the owner block to stop accepting messages.
            This action is invoked when SourceCore encounters an exception.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._itemsRemovedAction">
            <summary>
            An action to be invoked on the owner block when an item is removed.
            This may be null if the owner block doesn't need to be notified.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._itemCountingFunc">
            <summary>Item counting function</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._taskForOutputProcessing">
            <summary>The task used to process the output and offer it to targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._nextMessageId">
            <summary>Counter for message IDs unique within this source block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._nextMessageReservedFor">
            <summary>The target that the next message is reserved for, or null if nothing is reserved.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._decliningPermanently">
            <summary>Whether all future messages should be declined.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._enableOffering">
            <summary>Whether this block should again attempt to offer messages to targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._completionReserved">
            <summary>Whether someone has reserved the right to call CompleteBlockOncePossible.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1._exceptions">
            <summary>Exceptions that may have occurred and gone unhandled during processing.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.#ctor(System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Threading.Tasks.Dataflow.DataflowBlockOptions,System.Action{System.Threading.Tasks.Dataflow.ISourceBlock{`0}},System.Action{System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Int32},System.Func{System.Threading.Tasks.Dataflow.ISourceBlock{`0},`0,System.Collections.Generic.IList{`0},System.Int32})">
            <summary>Initializes the source core.</summary>
            <param name="owningSource">The source utilizing this core.</param>
            <param name="dataflowBlockOptions">The options to use to configure the block.</param>
            <param name="completeAction">Action to invoke in order to decline the associated target half, which will in turn decline this source core.</param>
            <param name="itemsRemovedAction">Action to invoke when one or more items is removed.  This may be null.</param>
            <param name="itemCountingFunc">
            Action to invoke when the owner needs to be able to count the number of individual
            items in an output or set of outputs.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.TryReceive(System.Predicate{`0},`0@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.TryReceiveAll(System.Collections.Generic.IList{`0}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OutputCount">
            <summary>Gets the number of items available to be received from this block.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.AddMessage(`0)">
            <summary>
            Adds a message to the source block for propagation. 
            This method must only be used by one thread at a time, and must not be used concurrently
            with any other producer side methods, e.g. AddMessages, Complete.
            </summary>
            <param name="item">The item to be wrapped in a message to be added.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.AddMessages(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds messages to the source block for propagation. 
            This method must only be used by one thread at a time, and must not be used concurrently
            with any other producer side methods, e.g. AddMessage, Complete.
            </summary>
            <param name="items">The list of items to be wrapped in messages to be added.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.AddException(System.Exception)">
            <summary>Adds an individual exceptionto this source.</summary>
            <param name="exception">The exception to add</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.AddExceptions(System.Collections.Generic.List{System.Exception})">
            <summary>Adds exceptions to this source.</summary>
            <param name="exceptions">The exceptions to add</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.AddAndUnwrapAggregateException(System.AggregateException)">
            <summary>Adds the exceptions contained in an AggregateException to this source.</summary>
            <param name="aggregateException">The exception to add</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.HasExceptions">
            <summary>Gets whether the _exceptions list is non-null.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.Complete">
            <summary>Informs the block that it will not be receiving additional messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OfferToTargets(System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>Offers messages to all targets.</summary>
            <param name="linkToTarget">
            The newly linked target, if OfferToTargets is being called to synchronously
            propagate to a target during a LinkTo operation.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OfferMessageToTarget(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>Offers the message to the target.</summary>
            <param name="header">The header of the message to offer.</param>
            <param name="message">The message being offered.</param>
            <param name="target">The single target to which the message should be offered.</param>
            <param name="messageWasAccepted">true if the message was accepted by the target; otherwise, false.</param>
            <returns>
            true if the message should not be offered to additional targets; 
            false if propagation should be allowed to continue.
            </returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OfferAsyncIfNecessaryWithValueLock">
            <summary>
            Called when we want to enable asynchronously offering message to targets.
            Takes the ValueLock before delegating to OfferAsyncIfNecessary.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OfferAsyncIfNecessary(System.Boolean,System.Boolean)">
            <summary>Called when we want to enable asynchronously offering message to targets.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
            <param name="outgoingLockKnownAcquired">Whether the caller is sure that the outgoing lock is currently held by this thread.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OfferAsyncIfNecessary_Slow(System.Boolean,System.Boolean)">
            <summary>Called when we want to enable asynchronously offering message to targets.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
            <param name="outgoingLockKnownAcquired">Whether the caller is sure that the outgoing lock is currently held by this thread.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.OfferMessagesLoopCore">
            <summary>Task body used to process messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.CanceledOrFaulted">
            <summary>Gets whether the source has had cancellation requested or an exception has occurred.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.CompleteBlockIfPossible">
            <summary>Completes the block's processing if there's nothing left to do and never will be.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.CompleteBlockIfPossible_Slow">
            <summary>
            Slow path for CompleteBlockIfPossible. 
            Separating out the slow path into its own method makes it more likely that the fast path method will get inlined.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.CompleteBlockOncePossible">
            <summary>
            Completes the block.  This must only be called once, and only once all of the completion conditions are met.
            As such, it must only be called from CompleteBlockIfPossible.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggerDisplayContent">
            <summary>Gets the object to display in the debugger display attribute.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.GetDebuggingInformation">
            <summary>Gets information about this helper to be used for display in a debugger.</summary>
            <returns>Debugging information about this source core.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation">
            <summary>Provides debugging information about the source core.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation._source">
            <summary>The source being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.#ctor(System.Threading.Tasks.Dataflow.Internal.SourceCore{`0})">
            <summary>Initializes the type proxy.</summary>
            <param name="source">The source being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.OutputCount">
            <summary>Gets the number of messages available for receiving.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.OutputQueue">
            <summary>Gets the messages available for receiving.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SourceCore`1.DebuggingInformation.NextMessageReservedFor">
            <summary>Gets the target that holds a reservation on the next message, if any.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1">
            <summary>
            Provides a core implementation of <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/> for use when there's only a single producer posting data.
            </summary>
            <typeparam name="TInput">Specifies the type of data accepted by the <see cref="T:System.Threading.Tasks.Dataflow.Internal.TargetCore`1"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._owningTarget">
            <summary>The target block using this helper.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._messages">
            <summary>The messages in this target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._dataflowBlockOptions">
            <summary>The options to use to configure this block. The target core assumes these options are immutable.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._action">
            <summary>An action to invoke for every accepted message.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._exceptions">
            <summary>Exceptions that may have occurred and gone unhandled during processing.  This field is lazily initialized.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._decliningPermanently">
            <summary>Whether to stop accepting new messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._completionReserved">
            <summary>A task has reserved the right to run the completion routine.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._activeConsumer">
            <summary>
            The Task currently active to process the block. This field is used to synchronize between producer and consumer, 
            and it should not be set to null once the block completes, as doing so would allow for races where the producer
            gets another consumer task queued even though the block has completed.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1._completionTask">
            <summary>A task representing the completion of the block.  This field is lazily initialized.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.#ctor(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Action{`0},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initialize the SPSC target core.</summary>
            <param name="owningTarget">The owning target block.</param>
            <param name="action">The action to be invoked for every message.</param>
            <param name="dataflowBlockOptions">The options to use to configure this block. The target core assumes these options are immutable.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.OfferMessage_Slow(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>Implements the slow path for OfferMessage.</summary>
            <param name="messageHeader">The message header for the offered value.</param>
            <param name="messageValue">The offered value.</param>
            <param name="source">The source offering the message. This may be null.</param>
            <param name="consumeToAccept">true if we need to call back to the source to consume the message; otherwise, false if we can simply accept it directly.</param>
            <returns>The status of the message.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.ScheduleConsumerIfNecessary(System.Boolean)">
            <summary>Schedules a consumer task if there's none currently running.</summary>
            <param name="isReplica">Whether the new consumer is being scheduled to replace a currently running consumer.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.ProcessMessagesLoopCore">
            <summary>Task body used to process messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.InputCount">
            <summary>Gets the number of messages waiting to be processed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.Complete(System.Exception)">
            <summary>
            Completes the target core.  If an exception is provided, the block will end up in a faulted state.
            If Complete is invoked more than once, or if it's invoked after the block is already
            completing, all invocations after the first are ignored.
            </summary>
            <param name="exception">The exception to be stored.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.StoreException(System.Exception)">
            <summary>
            Ensures the exceptions list is initialized and stores the exception into the list using a lock.
            </summary>
            <param name="exception">The exception to store.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.CompleteBlockOncePossible">
            <summary>
            Completes the block.  This must only be called once, and only once all of the completion conditions are met.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.CompletionSource">
            <summary>Gets the lazily-initialized completion source.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.GetDebuggingInformation">
            <summary>Gets information about this helper to be used for display in a debugger.</summary>
            <returns>Debugging information about this target.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggerDisplayContent">
            <summary>Gets the object to display in the debugger display attribute.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation">
            <summary>Provides a wrapper for commonly needed debugging information.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation._target">
            <summary>The target being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.#ctor(System.Threading.Tasks.Dataflow.Internal.SpscTargetCore{`0})">
            <summary>Initializes the debugging helper.</summary>
            <param name="target">The target being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.InputCount">
            <summary>Gets the number of messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.CurrentDegreeOfParallelism">
            <summary>Gets the current number of outstanding input processing operations.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.SpscTargetCore`1.DebuggingInformation.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetCoreOptions">
            <summary>Options used to configure a target core.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCoreOptions.None">
            <summary>Synchronous completion, both a target and a source, etc.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCoreOptions.UsesAsyncCompletion">
            <summary>Whether the block relies on the delegate to signal when an async operation has completed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCoreOptions.RepresentsBlockCompletion">
            <summary>
            Whether the block containing this target core is just a target or also has a source side.
            If it's just a target, then this target core's completion represents the entire block's completion.
            </summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetCore`1">
            <summary>
            Provides a core implementation of <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1"/>.</summary>
            <typeparam name="TInput">Specifies the type of data accepted by the <see cref="T:System.Threading.Tasks.Dataflow.Internal.TargetCore`1"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._keepAlivePredicate">
            <summary>Caching the keep alive predicate.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._completionSource">
            <summary>A task representing the completion of the block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._owningTarget">
            <summary>The target block using this helper.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._messages">
            <summary>The messages in this target.</summary>
            <remarks>This field doubles as the IncomingLock.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._dataflowBlockOptions">
            <summary>The options associated with this block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._callAction">
            <summary>An action to invoke for every accepted message.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._targetCoreOptions">
            <summary>Whether the block relies on the delegate to signal when an async operation has completed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._boundingState">
            <summary>Bounding state for when the block is executing in bounded mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._reorderingBuffer">
            <summary>The reordering buffer used by the owner.  May be null.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.IncomingLock">
            <summary>Gets the object used as the incoming lock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._exceptions">
            <summary>Exceptions that may have occurred and gone unhandled during processing.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._decliningPermanently">
            <summary>Whether to stop accepting new messages.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._numberOfOutstandingOperations">
            <summary>The number of operations (including service tasks) currently running asynchronously.</summary>
            <remarks>Must always be accessed from inside a lock.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._numberOfOutstandingServiceTasks">
            <summary>The number of service tasks in async mode currently running.</summary>
            <remarks>Must always be accessed from inside a lock.</remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._nextAvailableInputMessageId">
            <summary>The next available ID we can assign to a message about to be processed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._completionReserved">
            <summary>A task has reserved the right to run the completion routine.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1._keepAliveBanCounter">
            <summary>This counter is set by the processing loop to prevent itself from trying to keep alive.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.#ctor(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Action{System.Collections.Generic.KeyValuePair{`0,System.Int64}},System.Threading.Tasks.Dataflow.Internal.IReorderingBuffer,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions,System.Threading.Tasks.Dataflow.Internal.TargetCoreOptions)">
            <summary>Initializes the target core.</summary>
            <param name="owningTarget">The target using this helper.</param>
            <param name="callAction">An action to invoke for all accepted items.</param>
            <param name="reorderingBuffer">The reordering buffer used by the owner; may be null.</param>
            <param name="dataflowBlockOptions">The options to use to configure this block. The target core assumes these options are immutable.</param>
            <param name="targetCoreOptions">Options for how the target core should behave.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.Complete(System.Exception,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
            <summary>Internal Complete entry point with extra parameters for different contexts.</summary>
            <param name="exception">If not null, the block will be faulted.</param>
            <param name="dropPendingMessages">If true, any unprocessed input messages will be dropped.</param>
            <param name="storeExceptionEvenIfAlreadyCompleting">If true, an exception will be stored after _decliningPermanently has been set to true.</param>
            <param name="unwrapInnerExceptions">If true, exception will be treated as an AggregateException.</param>
            <param name="revertProcessingState">Indicates whether the processing state is dirty and has to be reverted.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.InputCount">
            <summary>Gets the number of items waiting to be processed by this target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.SignalOneAsyncMessageCompleted">
            <summary>Signals to the target core that a previously launched asynchronous operation has now completed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.SignalOneAsyncMessageCompleted(System.Int32)">
            <summary>Signals to the target core that a previously launched asynchronous operation has now completed.</summary>
            <param name="boundingCountChange">The number of elements by which to change the bounding count, if bounding is occurring.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.UsesAsyncCompletion">
            <summary>Gets whether this instance has been constructed for async processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.HasRoomForMoreOperations">
            <summary>Gets whether there's room to launch more processing operations.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.HasRoomForMoreServiceTasks">
            <summary>Gets whether there's room to launch more service tasks for doing/launching processing operations.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.ProcessAsyncIfNecessary(System.Boolean)">
            <summary>Called when new messages are available to be processed.</summary>
            <param name="repeat">Whether this call is the continuation of a previous message loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.ProcessAsyncIfNecessary_Slow(System.Boolean)">
            <summary>
            Slow path for ProcessAsyncIfNecessary. 
            Separating out the slow path into its own method makes it more likely that the fast path method will get inlined.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.ProcessMessagesLoopCore">
            <summary>Task body used to process messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.TryGetNextMessageForNewAsyncOperation(System.Collections.Generic.KeyValuePair{`0,System.Int64}@)">
            <summary>Retrieves the next message from the input queue for the useAsyncCompletion mode.</summary>
            <param name="messageWithId">The next message retrieved.</param>
            <returns>true if a message was found and removed; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.TryGetNextAvailableOrPostponedMessage(System.Collections.Generic.KeyValuePair{`0,System.Int64}@)">
            <summary>
            Either takes the next available message from the input queue or retrieves a postponed 
            message from a source, based on whether we're in greedy or non-greedy mode.
            </summary>
            <param name="messageWithId">The retrieved item with its Id.</param>
            <returns>true if a message could be removed and returned; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.TryConsumePostponedMessage(System.Boolean,System.Collections.Generic.KeyValuePair{`0,System.Int64}@)">
            <summary>Consumes a single postponed message.</summary>
            <param name="forPostponementTransfer">
            true if the method is being called to consume a message that'll then be stored into the input queue;
            false if the method is being called to consume a message that'll be processed immediately.
            If true, the bounding state's ForcePostponement will be updated.
            If false, the method will first try (while holding the lock) to consume from the input queue before
            consuming a postponed message.
            </param>
            <param name="result">The consumed message.</param>
            <returns>true if a message was consumed; otherwise, false.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.CanceledOrFaulted">
            <summary>Gets whether the target has had cancellation requested or an exception has occurred.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.CompleteBlockIfPossible">
            <summary>Completes the block once all completion conditions are met.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.CompleteBlockIfPossible_Slow">
            <summary>
            Slow path for CompleteBlockIfPossible. 
            Separating out the slow path into its own method makes it more likely that the fast path method will get inlined.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.CompleteBlockOncePossible">
            <summary>
            Completes the block.  This must only be called once, and only once all of the completion conditions are met.
            As such, it must only be called from CompleteBlockIfPossible.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.IsBounded">
            <summary>Gets whether the target core is operating in a bounded mode.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.ChangeBoundingCount(System.Int32)">
            <summary>Increases or decreases the bounding count.</summary>
            <param name="count">The incremental addition (positive to increase, negative to decrease).</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggerDisplayContent">
            <summary>Gets the object to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.GetDebuggingInformation">
            <summary>Gets information about this helper to be used for display in a debugger.</summary>
            <returns>Debugging information about this target.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation">
            <summary>Provides a wrapper for commonly needed debugging information.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation._target">
            <summary>The target being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.#ctor(System.Threading.Tasks.Dataflow.Internal.TargetCore{`0})">
            <summary>Initializes the debugging helper.</summary>
            <param name="target">The target being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.InputCount">
            <summary>Gets the number of messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.PostponedMessages">
            <summary>Gets any postponed messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.CurrentDegreeOfParallelism">
            <summary>Gets the current number of outstanding input processing operations.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetCore`1.DebuggingInformation.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1">
            <summary>Stores targets registered with a source.</summary>
            <typeparam name="T">Specifies the type of data accepted by the targets.</typeparam>
            <remarks>This type is not thread-safe.</remarks>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo">
            <summary>
            Information about a registered target. This class represents a self-sufficient node in a linked list.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo.#ctor(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>Initializes the LinkedTargetInfo.</summary>
            <param name="target">The target block reference for this entry.</param>
            <param name="linkOptions">The link options.</param>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo.Target">
            <summary>The target block reference for this entry.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo.PropagateCompletion">
            <summary>The value of the PropagateCompletion link option.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo.RemainingMessages">
            <summary>Number of remaining messages to propagate. 
            This counter is initialized to the MaxMessages option and 
            gets decremented after each successful propagation.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo.Previous">
            <summary>The previous node in the list.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.LinkedTargetInfo.Next">
            <summary>The next node in the list.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1._owningSource">
            <summary>A reference to the owning source block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1._targetInformation">
            <summary>A mapping of targets to information about them.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1._firstTarget">
            <summary>The first node of an ordered list of targets. Messages should be offered to targets starting from First and following Next.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1._lastTarget">
            <summary>The last node of the ordered list of targets. This field is used purely as a perf optimization to avoid traversing the list for each Add.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1._linksWithRemainingMessages">
            <summary>Number of links with positive RemainingMessages counters.
            This is an optimization that allows us to skip dictionary lookup when this counter is 0.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.#ctor(System.Threading.Tasks.Dataflow.ISourceBlock{`0})">
            <summary>Initializes the registry.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.Add(System.Threading.Tasks.Dataflow.ITargetBlock{`0}@,System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>Adds a target to the registry.</summary>
            <param name="target">The target to add.</param>
            <param name="linkOptions">The link options.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.Contains(System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>Gets whether the registry contains a particular target.</summary>
            <param name="target">The target.</param>
            <returns>true if the registry contains the target; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.Remove(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean)">
            <summary>Removes the target from the registry.</summary>
            <param name="target">The target to remove.</param>
            <param name="onlyIfReachedMaxMessages">
            Only remove the target if it's configured to be unlinked after one propagation.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.Remove_Slow(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean)">
            <summary>Actually removes the target from the registry.</summary>
            <param name="target">The target to remove.</param>
            <param name="onlyIfReachedMaxMessages">
            Only remove the target if it's configured to be unlinked after one propagation.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.ClearEntryPoints">
            <summary>Clears the target registry entry points while allowing subsequent traversals of the linked list.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.PropagateCompletion(System.Threading.Tasks.Dataflow.Internal.TargetRegistry{`0}.LinkedTargetInfo)">
            <summary>Propagated completion to the targets of the given linked list.</summary>
            <param name="firstTarget">The head of a saved linked list.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.FirstTargetNode">
            <summary>Gets the first node of the ordered target list.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.AddToList(System.Threading.Tasks.Dataflow.Internal.TargetRegistry{`0}.LinkedTargetInfo,System.Boolean)">
            <summary>Adds a LinkedTargetInfo node to the doubly-linked list.</summary>
            <param name="node">The node to be added.</param>
            <param name="append">Whether to append or to prepend the node.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.RemoveFromList(System.Threading.Tasks.Dataflow.Internal.TargetRegistry{`0}.LinkedTargetInfo)">
            <summary>Removes the LinkedTargetInfo node from the doubly-linked list.</summary>
            <param name="node">The node to be removed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.Count">
            <summary>Gets the number of items in the registry.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.TargetsForDebugger">
            <summary>Converts the linked list of targets to an array for rendering in a debugger.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator">
            <summary>Provides a nop passthrough for use with TargetRegistry.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator._owningSource">
            <summary>The source that encapsulates this block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator._target">
            <summary>The target with which this block is associated.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.#ctor(System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>Initializes the passthrough.</summary>
            <param name="owningSource">The source that encapsulates this block.</param>
            <param name="target">The target to which messages should be forwarded.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#IDataflowBlock#Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#IDataflowBlock#Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#ISourceBlock{T}#LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.DebugView">
            <summary>Provides a debugger type proxy for a passthrough.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.DebugView._passthrough">
            <summary>The passthrough.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.DebugView.#ctor(System.Threading.Tasks.Dataflow.Internal.TargetRegistry{`0}.NopLinkPropagator)">
            <summary>Initializes the debug view.</summary>
            <param name="passthrough">The passthrough to view.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.NopLinkPropagator.DebugView.LinkedTarget">
            <summary>The linked target for this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.DebugView">
            <summary>Provides a debugger type proxy for the target registry.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.DebugView._registry">
            <summary>The registry being debugged.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.Internal.TargetRegistry{`0})">
            <summary>Initializes the type proxy.</summary>
            <param name="registry">The target registry.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.Internal.TargetRegistry`1.DebugView.Targets">
            <summary>Gets a list of all targets to show in the debugger.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1">
            <summary>
            Provides a buffer for storing at most one element at time, overwriting each message with the next as it arrives.  
            Messages are broadcast to all linked targets, all of which may consume a clone of the message.
            </summary>
            <typeparam name="T">Specifies the type of the data buffered by this dataflow block.</typeparam>
            <remarks>
            <see cref="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1"/> exposes at most one element at a time.  However, unlike
            <see cref="T:System.Threading.Tasks.Dataflow.WriteOnceBlock`1"/>, that element will be overwritten as new elements are provided
            to the block.  <see cref="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1"/> ensures that the current element is broadcast to any
            linked targets before allowing the element to be overwritten.
            </remarks>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1._source">
            <summary>The source side.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1._boundingState">
            <summary>Bounding state for when the block is executing in bounded mode.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1._decliningPermanently">
            <summary>Whether all future messages should be declined.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1._completionReserved">
            <summary>A task has reserved the right to run the completion routine.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.IncomingLock">
            <summary>Gets the lock used to synchronize incoming requests.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.#ctor(System.Func{`0,`0})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1"/> with the specified cloning function.</summary>
            <param name="cloningFunction">
            The function to use to clone the data when offered to other blocks.
            This may be null to indicate that no cloning need be performed.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.#ctor(System.Func{`0,`0},System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1"/>  with the specified cloning function and <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
            <param name="cloningFunction">
            The function to use to clone the data when offered to other blocks.
            This may be null to indicate that no cloning need be performed.
            </param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.TryReceive(System.Predicate{`0},`0@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#IReceivableSourceBlock{T}#TryReceiveAll(System.Collections.Generic.IList{`0}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.OnItemsRemoved(System.Int32)">
            <summary>Notifies the block that one or more items was removed from the queue.</summary>
            <param name="numItemsRemoved">The number of items removed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.ConsumeAsyncIfNecessary(System.Boolean)">
            <summary>Called when postponed messages may need to be consumed.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.ConsumeMessagesLoopCore">
            <summary>Task body used to consume postponed messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.ConsumeAndStoreOneMessageIfAvailable">
            <summary>
            Retrieves one postponed message if there's room and if we can consume a postponed message.
            Stores any consumed message into the source half.
            </summary>
            <returns>true if a message could be consumed and stored; otherwise, false.</returns>
            <remarks>This must only be called from the asynchronous processing loop.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.CompleteTargetIfPossible">
            <summary>Completes the target, notifying the source, once all completion conditions are met.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.HasValueForDebugger">
            <summary>Gets a value to be used for the DebuggerDisplayAttribute.  This must not throw even if HasValue is false.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.ValueForDebugger">
            <summary>Gets a value to be used for the DebuggerDisplayAttribute.  This must not throw even if HasValue is false.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView">
            <summary>Provides a debugger type proxy for the BroadcastBlock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView._broadcastBlock">
            <summary>The BroadcastBlock being debugged.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView._sourceDebuggingInformation">
            <summary>Debug info about the source side of the broadcast.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.BroadcastBlock{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="broadcastBlock">The BroadcastBlock being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.HasValue">
            <summary>Gets whether the broadcast has a current value.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.Value">
            <summary>Gets the broadcast's current value.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.NextMessageReservedFor">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1">
            <summary>Provides a core implementation for blocks that implement <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1"/>.</summary>
            <typeparam name="TOutput">Specifies the type of data supplied by the <see cref="T:System.Threading.Tasks.Dataflow.Internal.SourceCore`1"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._targetRegistry">
            <summary>A registry used to store all linked targets and information about them.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._messages">
            <summary>All of the output messages queued up to be received by consumers/targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._completionTask">
            <summary>A TaskCompletionSource that represents the completion of this block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._itemsRemovedAction">
            <summary>
            An action to be invoked on the owner block when an item is removed.
            This may be null if the owner block doesn't need to be notified.
            </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.OutgoingLock">
            <summary>Gets the object to use as the outgoing lock.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.ValueLock">
            <summary>Gets the object to use as the value lock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._owningSource">
            <summary>The source utilize this helper.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._dataflowBlockOptions">
            <summary>The options used to configure this block's execution.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._cloningFunction">
            <summary>The cloning function to use.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._currentMessageIsValid">
            <summary>An indicator whether _currentMessage has a value.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._currentMessage">
            <summary>The message currently being broadcast.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._nextMessageReservedFor">
            <summary>The target that the next message is reserved for, or null if nothing is reserved.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._enableOffering">
            <summary>Whether this block should again attempt to offer messages to targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._decliningPermanently">
            <summary>Whether all future messages should be declined.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._taskForOutputProcessing">
            <summary>The task used to process the output and offer it to targets.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._exceptions">
            <summary>Exceptions that may have occurred and gone unhandled during processing.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._nextMessageId">
            <summary>Counter for message IDs unique within this source block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1._completionReserved">
            <summary>Whether someone has reserved the right to call CompleteBlockOncePossible.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.#ctor(System.Threading.Tasks.Dataflow.BroadcastBlock{`1},System.Func{`1,`1},System.Threading.Tasks.Dataflow.DataflowBlockOptions,System.Action{System.Int32})">
            <summary>Initializes the source core.</summary>
            <param name="owningSource">The source utilizing this core.</param>
            <param name="cloningFunction">The function to use to clone the data when offered to other blocks.  May be null.</param>
            <param name="dataflowBlockOptions">The options to use to configure the block.</param>
            <param name="itemsRemovedAction">Action to invoke when an item is removed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.TryReceive(System.Predicate{`1},`1@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.TryReceiveAll(System.Collections.Generic.IList{`1}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.AddMessage(`1)">
            <summary>Adds a message to the source block for propagation.</summary>
            <param name="item">The item to be wrapped in a message to be added.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.Complete">
            <summary>Informs the block that it will not be receiving additional messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.CloneItem(`1)">
            <summary>Clones the item.</summary>
            <param name="item">The item to clone.</param>
            <returns>The cloned item.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.OfferCurrentMessageToNewTarget(System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>Offers the current message to a specific target.</summary>
            <param name="target">The target to which to offer the current message.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.OfferToTargets">
            <summary>Offers messages to targets.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.OfferMessageToTarget(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`1,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>Offers the specified message to the specified target.</summary>
            <param name="header">The header of the message to offer.</param>
            <param name="message">The message to offer.</param>
            <param name="target">The target to which the message should be offered.</param>
            <remarks>
            This will remove the target from the target registry if the result of the propagation demands it.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.OfferAsyncIfNecessary(System.Boolean)">
            <summary>Called when we want to enable asynchronously offering message to targets.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.OfferMessagesLoopCore">
            <summary>Task body used to process messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.CompleteBlockIfPossible">
            <summary>Completes the block's processing if there's nothing left to do and never will be.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.CompleteBlockIfPossible_Slow">
            <summary>
            Slow path for CompleteBlockIfPossible. 
            Separating out the slow path into its own method makes it more likely that the fast path method will get inlined.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.CompleteBlockOncePossible">
            <summary>
            Completes the block.  This must only be called once, and only once all of the completion conditions are met.
            As such, it must only be called from CompleteBlockIfPossible.
            </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.CanceledOrFaulted">
            <summary>Gets whether the source has had cancellation requested or an exception has occurred.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.AddException(System.Exception)">
            <summary>Adds an individual exceptionto this source.</summary>
            <param name="exception">The exception to add</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.AddExceptions(System.Collections.Generic.List{System.Exception})">
            <summary>Adds exceptions to this source.</summary>
            <param name="exceptions">The exceptions to add</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggerDisplayContent">
            <summary>Gets the object to display in the debugger display attribute.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.GetDebuggingInformation">
            <summary>Gets information about this helper to be used for display in a debugger.</summary>
            <returns>Debugging information about this source core.</returns>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation">
            <summary>Provides debugging information about the source core.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation._source">
            <summary>The source being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.#ctor(System.Threading.Tasks.Dataflow.BroadcastBlock{`0}.BroadcastingSourceCore{`1})">
            <summary>Initializes the type proxy.</summary>
            <param name="source">The source being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.HasValue">
            <summary>Gets whether the source contains a current message.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.Value">
            <summary>Gets the value of the source's current message.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.InputCount">
            <summary>Gets the number of messages waiting to be made current.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.InputQueue">
            <summary>Gets the messages available for receiving.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.NextMessageReservedFor">
            <summary>Gets the target that holds a reservation on the next message, if any.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BufferBlock`1">
            <summary>Provides a buffer for storing data.</summary>
            <typeparam name="T">Specifies the type of the data buffered by this dataflow block.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BufferBlock`1._source">
            <summary>The core logic for the buffer block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BufferBlock`1._boundingState">
            <summary>The bounding state for when in bounding mode; null if not bounding.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BufferBlock`1._targetDecliningPermanently">
            <summary>Whether all future messages should be declined on the target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BufferBlock`1._targetCompletionReserved">
            <summary>A task has reserved the right to run the target's completion routine.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.IncomingLock">
            <summary>Gets the lock object used to synchronize incoming requests.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.BufferBlock`1"/>.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.#ctor(System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.BufferBlock`1"/> with the specified <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.BufferBlock`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.TryReceive(System.Predicate{`0},`0@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.TryReceiveAll(System.Collections.Generic.IList{`0}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.Count">
            <summary>Gets the number of items currently stored in the buffer.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.OnItemsRemoved(System.Int32)">
            <summary>Notifies the block that one or more items was removed from the queue.</summary>
            <param name="numItemsRemoved">The number of items removed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.ConsumeAsyncIfNecessary(System.Boolean)">
            <summary>Called when postponed messages may need to be consumed.</summary>
            <param name="isReplacementReplica">Whether this call is the continuation of a previous message loop.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.ConsumeMessagesLoopCore">
            <summary>Task body used to consume postponed messages.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.ConsumeAndStoreOneMessageIfAvailable">
            <summary>
            Retrieves one postponed message if there's room and if we can consume a postponed message.
            Stores any consumed message into the source half.
            </summary>
            <returns>true if a message could be consumed and stored; otherwise, false.</returns>
            <remarks>This must only be called from the asynchronous processing loop.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.CompleteTargetIfPossible">
            <summary>Completes the target, notifying the source, once all completion conditions are met.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.CountForDebugger">
            <summary>Gets the number of messages in the buffer.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView">
            <summary>Provides a debugger type proxy for the BufferBlock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView._bufferBlock">
            <summary>The buffer block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView._sourceDebuggingInformation">
            <summary>The buffer's source half.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.BufferBlock{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="bufferBlock">The BufferBlock being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.PostponedMessages">
            <summary>Gets the collection of postponed message headers.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.Queue">
            <summary>Gets the messages in the buffer.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.TaskForInputProcessing">
            <summary>The task used to process messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.BufferBlock`1.DebugView.NextMessageReservedFor">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.JoinBlock`2">
            <summary>
            Provides a dataflow block that joins across multiple dataflow sources, not necessarily of the same type, 
            waiting for one item to arrive for each type before they?re all released together as a tuple of one item per type.
            </summary>
            <typeparam name="T1">Specifies the type of data accepted by the block's first target.</typeparam>
            <typeparam name="T2">Specifies the type of data accepted by the block's second target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`2._sharedResources">
            <summary>Resources shared by all targets for this join block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`2._source">
            <summary>The source half of this join.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`2._target1">
            <summary>The first target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`2._target2">
            <summary>The second target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`2"/>.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.#ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`2"/>.</summary>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1}},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.TryReceive(System.Predicate{System.Tuple{`0,`1}},System.Tuple{`0,`1}@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.TryReceiveAll(System.Collections.Generic.IList{System.Tuple{`0,`1}}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.Target1">
            <summary>Gets a target that may be used to offer messages of the first type.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.Target2">
            <summary>Gets a target that may be used to offer messages of the second type.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{T1,T2}}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1}},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{T1,T2}}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1}})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{T1,T2}}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1}})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView">
            <summary>Provides a debugger type proxy for the JoinBlock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView._joinBlock">
            <summary>The JoinBlock being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.#ctor(System.Threading.Tasks.Dataflow.JoinBlock{`0,`1})">
            <summary>Initializes the debug view.</summary>
            <param name="joinBlock">The JoinBlock being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.JoinsCreated">
            <summary>Gets the number of joins created thus far.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.TaskForInputProcessing">
            <summary>Gets the task being used for input processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.DataflowBlockOptions">
            <summary>Gets the GroupingDataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.Target1">
            <summary>Gets the first target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.Target2">
            <summary>Gets the second target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`2.DebugView.NextMessageReservedFor">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.JoinBlock`3">
            <summary>
            Provides a dataflow block that joins across multiple dataflow sources, not necessarily of the same type, 
            waiting for one item to arrive for each type before they?re all released together as a tuple of one item per type.
            </summary>
            <typeparam name="T1">Specifies the type of data accepted by the block's first target.</typeparam>
            <typeparam name="T2">Specifies the type of data accepted by the block's second target.</typeparam>
            <typeparam name="T3">Specifies the type of data accepted by the block's third target.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3._sharedResources">
            <summary>Resources shared by all targets for this join block.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3._source">
            <summary>The source half of this join.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3._target1">
            <summary>The first target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3._target2">
            <summary>The second target.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3._target3">
            <summary>The third target.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.#ctor">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`3"/>.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.#ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`3"/>.</summary>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.JoinBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1,`2}},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.TryReceive(System.Predicate{System.Tuple{`0,`1,`2}},System.Tuple{`0,`1,`2}@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.TryReceiveAll(System.Collections.Generic.IList{System.Tuple{`0,`1,`2}}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.Target1">
            <summary>Gets a target that may be used to offer messages of the first type.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.Target2">
            <summary>Gets a target that may be used to offer messages of the second type.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.Target3">
            <summary>Gets a target that may be used to offer messages of the third type.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{T1,T2,T3}}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1,`2}},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{T1,T2,T3}}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1,`2}})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.System#Threading#Tasks#Dataflow#ISourceBlock{System#Tuple{T1,T2,T3}}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{System.Tuple{`0,`1,`2}})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView">
            <summary>Provides a debugger type proxy for the Batch.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView._joinBlock">
            <summary>The JoinBlock being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.#ctor(System.Threading.Tasks.Dataflow.JoinBlock{`0,`1,`2})">
            <summary>Initializes the debug view.</summary>
            <param name="joinBlock">The JoinBlock being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.JoinsCreated">
            <summary>Gets the number of joins created thus far.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.TaskForInputProcessing">
            <summary>Gets the task being used for input processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.DataflowBlockOptions">
            <summary>Gets the GroupingDataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.Target1">
            <summary>Gets the first target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.Target2">
            <summary>Gets the second target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.Target3">
            <summary>Gets the third target.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.JoinBlock`3.DebugView.NextMessageReservedFor">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.TransformBlock`2">
            <summary>Provides a dataflow block that invokes a provided <see cref="T:System.Func`2"/> delegate for every data element received.</summary>
            <typeparam name="TInput">Specifies the type of data received and operated on by this <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/>.</typeparam>
            <typeparam name="TOutput">Specifies the type of data output by this <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformBlock`2._target">
            <summary>The target side.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformBlock`2._reorderingBuffer">
            <summary>Buffer used to reorder outputs that may have completed out-of-order between the target half and the source half.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformBlock`2._source">
            <summary>The source side.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.ParallelSourceLock">
            <summary>Gets the object to use for writing to the source when multiple threads may be involved.</summary>
            <remarks>
            If a reordering buffer is used, it is safe for multiple threads to write to concurrently and handles safe 
            access to the source. If there's no reordering buffer because no parallelism is used, then only one thread at
            a time will try to access the source, anyway.  But, if there's no reordering buffer and parallelism is being
            employed, then multiple threads may try to access the source concurrently, in which case we need to manually
            synchronize all such access, and this lock is used for that purpose.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.#ctor(System.Func{`0,`1})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/> with the specified <see cref="T:System.Func`2"/>.</summary>
            <param name="transform">The function to invoke with each data element received.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.#ctor(System.Func{`0,`1},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>
            Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/> with the specified <see cref="T:System.Func`2"/> and 
            <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.
            </summary>
            <param name="transform">The function to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.#ctor(System.Func{`0,System.Threading.Tasks.Task{`1}})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/> with the specified <see cref="T:System.Func`2"/>.</summary>
            <param name="transform">The function to invoke with each data element received.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.#ctor(System.Func{`0,System.Threading.Tasks.Task{`1}},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>
            Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/> with the specified <see cref="T:System.Func`2"/>
            and <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.
            </summary>
            <param name="transform">The function to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.#ctor(System.Func{`0,`1},System.Func{`0,System.Threading.Tasks.Task{`1}},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>
            Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/> with the specified <see cref="T:System.Func`2"/> 
            and <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.
            </summary>
            <param name="transformSync">The synchronous function to invoke with each data element received.</param>
            <param name="transformAsync">The asynchronous function to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.TransformBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transformSync"/> and <paramref name="transformAsync"/> are both null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.ProcessMessage(System.Func{`0,`1},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Processes the message with a user-provided transform function that returns a TOutput.</summary>
            <param name="transform">The transform function to use to process the message.</param>
            <param name="messageWithId">The message to be processed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.ProcessMessageWithTask(System.Func{`0,System.Threading.Tasks.Task{`1}},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Processes the message with a user-provided transform function that returns a task of TOutput.</summary>
            <param name="transform">The transform function to use to process the message.</param>
            <param name="messageWithId">The message to be processed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.AsyncCompleteProcessMessageWithTask(System.Threading.Tasks.Task{`1},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Completes the processing of an asynchronous message.</summary>
            <param name="completed">The completed task storing the output data generated for an input message.</param>
            <param name="messageWithId">The originating message</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.TryReceive(System.Predicate{`1},`1@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.TryReceiveAll(System.Collections.Generic.IList{`1}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.InputCount">
            <summary>
        Gets the number of input items waiting to be processed by this block.
      </summary><remarks>
        The InputCount does not include any items currently being processed by the block or any items that 
        have already been processed by the block.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.System#Threading#Tasks#Dataflow#ITargetBlock{TInput}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.InputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView">
            <summary>Provides a debugger type proxy for the TransformBlock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView._transformBlock">
            <summary>The transform being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView._targetDebuggingInformation">
            <summary>The target half of the block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.#ctor(System.Threading.Tasks.Dataflow.TransformBlock{`0,`1})">
            <summary>Initializes the debug view.</summary>
            <param name="transformBlock">The transform being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.PostponedMessages">
            <summary>Gets any postponed messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.CurrentDegreeOfParallelism">
            <summary>Gets the number of outstanding input operations.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformBlock`2.DebugView.NextMessageReservedFor">
            <summary>Gets the target that holds a reservation on the next message, if any.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2">
            <summary>Provides a dataflow block that invokes a provided <see cref="T:System.Func`2"/> delegate for every data element received.</summary>
            <typeparam name="TInput">Specifies the type of data received and operated on by this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.</typeparam>
            <typeparam name="TOutput">Specifies the type of data output by this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformManyBlock`2._target">
            <summary>The target side.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformManyBlock`2._reorderingBuffer">
            <summary>
            Buffer used to reorder output sets that may have completed out-of-order between the target half and the source half.
            This specialized reordering buffer supports streaming out enumerables if the message is the next in line.
            </summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformManyBlock`2._source">
            <summary>The source side.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.ParallelSourceLock">
            <summary>Gets the object to use for writing to the source when multiple threads may be involved.</summary>
            <remarks>
            If a reordering buffer is used, it is safe for multiple threads to write to concurrently and handles safe 
            access to the source. If there's no reordering buffer because no parallelism is used, then only one thread at
            a time will try to access the source, anyway.  But, if there's no reordering buffer and parallelism is being
            employed, then multiple threads may try to access the source concurrently, in which case we need to manually
            synchronize all such access, and this lock is used for that purpose.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.#ctor(System.Func{`0,System.Collections.Generic.IEnumerable{`1}})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/> with the specified function.</summary>
            <param name="transform">
            The function to invoke with each data element received.  All of the data from the returned <see cref="T:System.Collections.Generic.IEnumerable`1"/>
            will be made available as output from this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.
            </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.#ctor(System.Func{`0,System.Collections.Generic.IEnumerable{`1}},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/> with the specified function and <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.</summary>
            <param name="transform">
            The function to invoke with each data element received.  All of the data from the returned in the <see cref="T:System.Collections.Generic.IEnumerable`1"/>
            will be made available as output from this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.
            </param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.#ctor(System.Func{`0,System.Threading.Tasks.Task{System.Collections.Generic.IEnumerable{`1}}})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/> with the specified function.</summary>
            <param name="transform">
            The function to invoke with each data element received. All of the data asynchronously returned in the <see cref="T:System.Collections.Generic.IEnumerable`1"/>
            will be made available as output from this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.
            </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.#ctor(System.Func{`0,System.Threading.Tasks.Task{System.Collections.Generic.IEnumerable{`1}}},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/> with the specified function and <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.</summary>
            <param name="transform">
            The function to invoke with each data element received. All of the data asynchronously returned in the <see cref="T:System.Collections.Generic.IEnumerable`1"/>
            will be made available as output from this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.
            </param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transform"/> is null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.#ctor(System.Func{`0,System.Collections.Generic.IEnumerable{`1}},System.Func{`0,System.Threading.Tasks.Task{System.Collections.Generic.IEnumerable{`1}}},System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/> with the specified function and <see cref="T:System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions"/>.</summary>
            <param name="transformSync">The synchronous function to invoke with each data element received.</param>
            <param name="transformAsync">The asynchronous function to invoke with each data element received.</param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="transformSync"/> and <paramref name="transformAsync"/> are both null (Nothing in Visual Basic).</exception>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.ProcessMessage(System.Func{`0,System.Collections.Generic.IEnumerable{`1}},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Processes the message with a user-provided transform function that returns an enumerable.</summary>
            <param name="transformFunction">The transform function to use to process the message.</param>
            <param name="messageWithId">The message to be processed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.ProcessMessageWithTask(System.Func{`0,System.Threading.Tasks.Task{System.Collections.Generic.IEnumerable{`1}}},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Processes the message with a user-provided transform function that returns an observable.</summary>
            <param name="function">The transform function to use to process the message.</param>
            <param name="messageWithId">The message to be processed.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.AsyncCompleteProcessMessageWithTask(System.Threading.Tasks.Task{System.Collections.Generic.IEnumerable{`1}},System.Collections.Generic.KeyValuePair{`0,System.Int64})">
            <summary>Completes the processing of an asynchronous message.</summary>
            <param name="completed">The completed task storing the output data generated for an input message.</param>
            <param name="messageWithId">The originating message</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.StoreOutputItems(System.Collections.Generic.KeyValuePair{`0,System.Int64},System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Stores the output items, either into the reordering buffer or into the source half.
            Ensures that the bounding count is correctly updated.
            </summary>
            <param name="messageWithId">The message with id.</param>
            <param name="outputItems">The output items to be persisted.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.StoreOutputItemsReordered(System.Int64,System.Collections.Generic.IEnumerable{`1})">
            <summary>Stores the next item using the reordering buffer.</summary>
            <param name="id">The ID of the item.</param>
            <param name="item">The completed item.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.StoreOutputItemsNonReorderedAtomic(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Stores the trusted enumerable en mass into the source core.
            This method does not go through the reordering buffer.
            </summary>
            <param name="outputItems"></param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.StoreOutputItemsNonReorderedWithIteration(System.Collections.Generic.IEnumerable{`1})">
            <summary>
            Stores the untrusted enumerable into the source core.
            This method does not go through the reordering buffer.
            </summary>
            <param name="outputItems">The untrusted enumerable.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.UpdateBoundingCountWithOutputCount(System.Int32)">
            <summary>
            Updates the bounding count based on the number of output items
            generated for a single input.
            </summary>
            <param name="count">The number of output items.</param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.TryReceive(System.Predicate{`1},`1@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.TryReceiveAll(System.Collections.Generic.IList{`1}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.InputCount">
            <summary>
        Gets the number of input items waiting to be processed by this block.
      </summary><remarks>
        The InputCount does not include any items currently being processed by the block or any items that 
        have already been processed by the block.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.OutputCount">
            <summary>
        Gets the number of output items available to be received from this block.
      </summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.System#Threading#Tasks#Dataflow#ITargetBlock{TInput}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.System#Threading#Tasks#Dataflow#ISourceBlock{TOutput}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`1})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.InputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.OutputCountForDebugger">
            <summary>Gets the number of messages waiting to be processed.  This must only be used from the debugger as it avoids taking necessary locks.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView">
            <summary>Provides a debugger type proxy for the TransformManyBlock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView._transformManyBlock">
            <summary>The transform many block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView._targetDebuggingInformation">
            <summary>The target half of the block being viewed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView._sourceDebuggingInformation">
            <summary>The source half of the block being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.#ctor(System.Threading.Tasks.Dataflow.TransformManyBlock{`0,`1})">
            <summary>Initializes the debug view.</summary>
            <param name="transformManyBlock">The transform being viewed.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.InputQueue">
            <summary>Gets the messages waiting to be processed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.PostponedMessages">
            <summary>Gets any postponed messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.OutputQueue">
            <summary>Gets the messages waiting to be received.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.CurrentDegreeOfParallelism">
            <summary>Gets the number of input operations currently in flight.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.TaskForOutputProcessing">
            <summary>Gets the task being used for output processing.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.IsDecliningPermanently">
            <summary>Gets whether the block is declining further messages.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.IsCompleted">
            <summary>Gets whether the block is completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.TransformManyBlock`2.DebugView.NextMessageReservedFor">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.WriteOnceBlock`1">
            <summary>Provides a buffer for receiving and storing at most one element in a network of dataflow blocks.</summary>
            <typeparam name="T">Specifies the type of the data buffered by this dataflow block.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._targetRegistry">
            <summary>A registry used to store all linked targets and information about them.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._cloningFunction">
            <summary>The cloning function.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._dataflowBlockOptions">
            <summary>The options used to configure this block's execution.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._lazyCompletionTaskSource">
            <summary>Lazily initialized task completion source that produces the actual completion task when needed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._decliningPermanently">
            <summary>Whether all future messages should be declined.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._completionReserved">
            <summary>Whether block completion is disallowed.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._header">
            <summary>The header of the singly-assigned value.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value">
            <summary>The singly-assigned value.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.ValueLock">
            <summary>Gets the object used as the value lock.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.#ctor(System.Func{`0,`0})">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.WriteOnceBlock`1"/>.</summary>
            <param name="cloningFunction">
            The function to use to clone the data when offered to other blocks.
            This may be null to indicate that no cloning need be performed.
            </param>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.#ctor(System.Func{`0,`0},System.Threading.Tasks.Dataflow.DataflowBlockOptions)">
            <summary>Initializes the <see cref="T:System.Threading.Tasks.Dataflow.WriteOnceBlock`1"/> with the specified <see cref="T:System.Threading.Tasks.Dataflow.DataflowBlockOptions"/>.</summary>
            <param name="cloningFunction">
            The function to use to clone the data when offered to other blocks.
            This may be null to indicate that no cloning need be performed.
            </param>
            <param name="dataflowBlockOptions">The options with which to configure this <see cref="T:System.Threading.Tasks.Dataflow.WriteOnceBlock`1"/>.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="dataflowBlockOptions"/> is null (Nothing in Visual Basic).</exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.CompleteBlockAsync(System.Collections.Generic.IList{System.Exception})">
            <summary>Asynchronously completes the block on another task.</summary>
            <remarks>
            This must only be called once all of the completion conditions are met.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.OfferToTargetsAndCompleteBlock">
            <summary>Offers the message and completes the block.</summary>
            <remarks>
            This is called only once.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.CompleteBlock(System.Collections.Generic.IList{System.Exception})">
            <summary>Completes the block.</summary>
            <remarks>
            This is called only once.
            </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#IDataflowBlock#Fault(System.Exception)">
            <summary>
        Causes the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> to complete in a 
        <see cref="F:System.Threading.Tasks.TaskStatus.Faulted" /> state.
      </summary><param name="exception">The <see cref="T:System.Exception" /> that caused the faulting.</param><exception cref="T:System.ArgumentNullException">
        The <paramref name="exception" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        After Fault has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state). Faulting a block,
        as with canceling a block, causes buffered messages (unprocessed input messages as well as 
        unoffered output messages) to be lost. 
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.Complete">
            <summary>
        Signals to the <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> that it should not accept
        nor produce any more messages nor consume any more postponed messages.
      </summary><remarks>
        After Complete has been called on a dataflow block, that block will complete
        (such that its <see cref="M:Completion" /> task will enter a final state) after it has processed all previously
        available data. Complete will not block waiting for completion to occur, but rather will initiate
        the request; to wait for completion to occur, the <see cref="M:Completion" /> task may be used.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.TryReceive(System.Predicate{`0},`0@)">
            <summary>
        Attempts to synchronously receive an available output item from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="filter">
        The predicate a value must successfully pass in order for it to be received. 
        <paramref name="filter" /> may be null (Nothing in Visual Basic), in which case all items will pass.
      </param><param name="item">The item received from the source.</param><returns>true if an item could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for an element, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#IReceivableSourceBlock{T}#TryReceiveAll(System.Collections.Generic.IList{`0}@)">
            <summary>
        Attempts to synchronously receive all available items from the <see cref="T:System.Threading.Tasks.Dataflow.IReceivableSourceBlock`1" />.
      </summary><param name="items">The items received from the source.</param><returns>true if one or more items could be received; otherwise, false.</returns><remarks>
        This method does not block waiting for the source to provide an item.
        It will return after checking for elements, whether or not an element was available.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.LinkTo(System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Threading.Tasks.Dataflow.DataflowLinkOptions)">
            <summary>
        Links the <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the specified <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> to which to connect this source.
      </param><param name="linkOptions">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowLinkOptions" /> instance that configures the link.
      </param><returns>An IDisposable that, upon calling Dispose, will unlink the source from the target.</returns><exception cref="T:System.ArgumentNullException">
        <paramref name="target" /> is null (Nothing in Visual Basic) or <paramref name="linkOptions" /> is null (Nothing in Visual Basic).
      </exception>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.Completion">
            <summary>
        Gets a <see cref="T:System.Threading.Tasks.Task">Task</see> that represents the asynchronous operation and completion of the dataflow block.
      </summary><remarks>
        A dataflow block is considered completed when it is not currently processing a message and when it has guaranteed that it will not process
        any more messages. The returned <see cref="T:System.Threading.Tasks.Task">Task</see> will transition to a completed state when the
        associated block has completed. It will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">RanToCompletion</see> state
        when the block completes its processing successfully according to the dataflow block’s defined semantics, it will transition to
        the <see cref="T:System.Threading.Tasks.TaskStatus">Faulted</see> state when the dataflow block has completed processing prematurely due to an unhandled exception,
        and it will transition to the <see cref="T:System.Threading.Tasks.TaskStatus">Canceled</see> state when the dataflow  block has completed processing
        prematurely due to receiving a cancellation request.  If the task completes in the Faulted state, its Exception property will return
        an <see cref="T:System.AggregateException" /> containing the one or more exceptions that caused the block to fail.
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#ITargetBlock{T}#OfferMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,`0,System.Threading.Tasks.Dataflow.ISourceBlock{`0},System.Boolean)">
            <summary>
        Offers a message to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />, giving the target the opportunity to consume or postpone the message.
      </summary><param name="messageHeader">
        A <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance that represents the header of the message being offered.
      </param><param name="messageValue">
        The value of the message being offered.
      </param><param name="source">
        The <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> offering the message. This may be null (Nothing in Visual Basic).
      </param><param name="consumeToAccept">
        true if the target must call ConsumeMessage synchronously during the call to OfferMessage, prior to returning
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" />, in order to consume the message.
        false if the target wanting to accept the message should not call ConsumeMessage, and should isntead simply return DataflowMessageStatus.Accepted.
      </param><returns>
        The status of the offered message. If the message was accepted by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Accepted" /> is returned, and the source should
        no longer use the offered message, as it is now owned by the target. If the message was postponed by the target, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Postponed" /> is returned
        as a notification that the target may later attempt to consume or reserve the message; in the meantime, the source still owns the message and may offer it to other blocks.
        If the target would have otherwise postponed but source was null, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is instead returned. 
        If the target tried to accept the message but missed it due to the source delivering the message to another target or simply discarding it, 
        <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.NotAvailable" /> is returned.
        If the target chose not to accept the message, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.Declined" /> is returned.  If the target
        chose not to accept the message and will never accept another message from this source, <see cref="F:System.Threading.Tasks.Dataflow.DataflowMessageStatus.DecliningPermanently" /> is returned.
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentException">
        <paramref name="consumeToAccept" /> may only be true if provided with a non-null <paramref name="source" />.
      </exception>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ConsumeMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0},System.Boolean@)">
            <summary>
        Passes the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> from this 
        <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.  
      </summary><param name="messageHeader">The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be consumed.</param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed.
      </param><param name="messageConsumed">
        True if the message was successfully consumed. False otherwise.
      </param><returns>
        <para>
          The value of the consumed message. This may correspond to a different <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> instance than was previously reserved and
          passed as the <paramref name="messageHeader" /> to <see cref="M:ConsumeMessage" />. The consuming <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> must 
          use the returned value instead of the value passed as messageValue through <see cref="M:OfferMessage" />.
        </para>
        <para>
          If the message requested is not available, the return value will be null (Nothing in Visual Basic).
        </para>
      </returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be consumed need not be linked from this 
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> 
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />. 
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Reserves the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the message that is to be reserved.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved.
      </param><returns>true if the message was successfully reserved; otherwise, false.</returns><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> for which the message is to be reserved need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          If true is returned, either <see cref="M:ConsumeMessage" /> or <see cref="M:ReleaseReservation" /> for this message must be subsequently called 
          with the same <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> and <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
          Failure to do so may result in the source being unable to propagate any further messages to any target.
        </para>
        <para>
          <see cref="M:ReserveMessage" /> must not be called while the target is holding any internal locks.  Doing so will violate the lock hierarchy
          necessary to avoid deadlocks in a dataflow network.
        </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#ISourceBlock{T}#ReleaseReservation(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock{`0})">
            <summary>
        Releases the right to pass the ownership of the message identified by the <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> 
        from this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </summary><param name="messageHeader">
        The <see cref="T:System.Threading.Tasks.Dataflow.DataflowMessageHeader" /> of the reserved message.
      </param><param name="target">
        The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that currently holds the reservation.
      </param><exception cref="T:System.ArgumentException">
        The <paramref name="messageHeader" /> is not valid.
      </exception><exception cref="T:System.ArgumentNullException">
        The <paramref name="target" /> is null (Nothing in Visual Basic).
      </exception><exception cref="T:System.InvalidOperationException">
        The <paramref name="target" /> did not have the message reserved.
      </exception><remarks>
        <para>
          The <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" /> that holds the reservation need not be linked from this
          <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" /> instance. Moreover, this <see cref="T:System.Threading.Tasks.Dataflow.ISourceBlock`1" />
          instance may have never offered the message directly to the <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
        </para>
        <para>
          It is required that this message has been previously reserved for the same <see cref="T:System.Threading.Tasks.Dataflow.ITargetBlock`1" />.
      </para>
      </remarks>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.CloneItem(`0)">
            <summary>Clones the item.</summary>
            <param name="item">The item to clone.</param>
            <returns>The cloned item.</returns>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.OfferToTargets">
            <summary>Offers the WriteOnceBlock's message to all targets.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.CompletionTaskSource">
            <summary>Ensures the completion task's TCS is initialized.</summary>
            <returns>The completion task's TCS.</returns>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.HasValue">
            <summary>Gets whether the block is storing a value.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.Value">
            <summary>Gets the value being stored by the block.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.ToString">
            <summary>
        Returns a string that represents the formatted name of this <see cref="T:System.Threading.Tasks.Dataflow.IDataflowBlock" /> instance.
      </summary><remarks>
        Inherited from <see cref="T:System.Object" />. Uses the <see cref="P:System.Threading.Tasks.Dataflow.DataflowBlockOptions.NameFormat" /> option.
      </remarks>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebuggerDisplayContent">
            <summary>The data to display in the debugger display attribute.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.System#Threading#Tasks#Dataflow#Internal#IDebuggerDisplay#Content">
            <summary>Gets the data to display in the debugger display attribute for this instance.</summary>
        </member>
        <member name="T:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView">
            <summary>Provides a debugger type proxy for WriteOnceBlock.</summary>
        </member>
        <member name="F:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView._writeOnceBlock">
            <summary>The WriteOnceBlock being viewed.</summary>
        </member>
        <member name="M:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.#ctor(System.Threading.Tasks.Dataflow.WriteOnceBlock{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="writeOnceBlock">The WriteOnceBlock to view.</param>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.IsCompleted">
            <summary>Gets whether the WriteOnceBlock has completed.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.Id">
            <summary>Gets the block's Id.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.HasValue">
            <summary>Gets whether the WriteOnceBlock has a value.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.Value">
            <summary>Gets the WriteOnceBlock's value if it has one, or default(T) if it doesn't.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.DataflowBlockOptions">
            <summary>Gets the DataflowBlockOptions used to configure this block.</summary>
        </member>
        <member name="P:System.Threading.Tasks.Dataflow.WriteOnceBlock`1.DebugView.LinkedTargets">
            <summary>Gets the set of all targets linked from this block.</summary>
        </member>
        <member name="T:System.Threading.Tasks.IProducerConsumerQueue`1">
            <summary>Represents a producer/consumer queue used internally by dataflow blocks.</summary>
            <typeparam name="T">Specifies the type of data contained in the queue.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.IProducerConsumerQueue`1.Enqueue(`0)">
            <summary>Enqueues an item into the queue.</summary>
            <param name="item">The item to enqueue.</param>
            <remarks>This method is meant to be thread-safe subject to the particular nature of the implementation.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.IProducerConsumerQueue`1.TryDequeue(`0@)">
            <summary>Attempts to dequeue an item from the queue.</summary>
            <param name="result">The dequeued item.</param>
            <returns>true if an item could be dequeued; otherwise, false.</returns>
            <remarks>This method is meant to be thread-safe subject to the particular nature of the implementation.</remarks>
        </member>
        <member name="P:System.Threading.Tasks.IProducerConsumerQueue`1.IsEmpty">
            <summary>Gets whether the collection is currently empty.</summary>
            <remarks>This method may or may not be thread-safe.</remarks>
        </member>
        <member name="P:System.Threading.Tasks.IProducerConsumerQueue`1.Count">
            <summary>Gets the number of items in the collection.</summary>
            <remarks>In many implementations, this method will not be thread-safe.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.IProducerConsumerQueue`1.GetCountSafe(System.Object)">
            <summary>A thread-safe way to get the number of items in the collection. May synchronize access by locking the provided synchronization object.</summary>
            <param name="syncObj">The sync object used to lock</param>
            <returns>The collection count</returns>
        </member>
        <member name="T:System.Threading.Tasks.MultiProducerMultiConsumerQueue`1">
            <summary>
            Provides a producer/consumer queue safe to be used by any number of producers and consumers concurrently.
            </summary>
            <typeparam name="T">Specifies the type of data contained in the queue.</typeparam>
        </member>
        <member name="M:System.Threading.Tasks.MultiProducerMultiConsumerQueue`1.System#Threading#Tasks#IProducerConsumerQueue{T}#Enqueue(`0)">
            <summary>Enqueues an item into the queue.</summary>
            <param name="item">The item to enqueue.</param>
        </member>
        <member name="M:System.Threading.Tasks.MultiProducerMultiConsumerQueue`1.System#Threading#Tasks#IProducerConsumerQueue{T}#TryDequeue(`0@)">
            <summary>Attempts to dequeue an item from the queue.</summary>
            <param name="result">The dequeued item.</param>
            <returns>true if an item could be dequeued; otherwise, false.</returns>
        </member>
        <member name="P:System.Threading.Tasks.MultiProducerMultiConsumerQueue`1.System#Threading#Tasks#IProducerConsumerQueue{T}#IsEmpty">
            <summary>Gets whether the collection is currently empty.</summary>
        </member>
        <member name="P:System.Threading.Tasks.MultiProducerMultiConsumerQueue`1.System#Threading#Tasks#IProducerConsumerQueue{T}#Count">
            <summary>Gets the number of items in the collection.</summary>
        </member>
        <member name="M:System.Threading.Tasks.MultiProducerMultiConsumerQueue`1.System#Threading#Tasks#IProducerConsumerQueue{T}#GetCountSafe(System.Object)">
            <summary>A thread-safe way to get the number of items in the collection. May synchronize access by locking the provided synchronization object.</summary>
            <remarks>ConcurrentQueue.Count is thread safe, no need to acquire the lock.</remarks>
        </member>
        <member name="T:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1">
            <summary>
            Provides a producer/consumer queue safe to be used by only one producer and one consumer concurrently.
            </summary>
            <typeparam name="T">Specifies the type of data contained in the queue.</typeparam>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.INIT_SEGMENT_SIZE">
            <summary>The initial size to use for segments (in number of elements).</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.MAX_SEGMENT_SIZE">
            <summary>The maximum size to use for segments (in number of elements).</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1._head">
            <summary>The head of the linked list of segments.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1._tail">
            <summary>The tail of the linked list of segments.</summary>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.#ctor">
            <summary>Initializes the queue.</summary>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Enqueue(`0)">
            <summary>Enqueues an item into the queue.</summary>
            <param name="item">The item to enqueue.</param>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.EnqueueSlow(`0,System.Threading.Tasks.SingleProducerSingleConsumerQueue{`0}.Segment@)">
            <summary>Enqueues an item into the queue.</summary>
            <param name="item">The item to enqueue.</param>
            <param name="segment">The segment in which to first attempt to store the item.</param>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.TryDequeue(`0@)">
            <summary>Attempts to dequeue an item from the queue.</summary>
            <param name="result">The dequeued item.</param>
            <returns>true if an item could be dequeued; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.TryDequeueSlow(System.Threading.Tasks.SingleProducerSingleConsumerQueue{`0}.Segment@,`0[]@,`0@)">
            <summary>Attempts to dequeue an item from the queue.</summary>
            <param name="array">The array from which the item was dequeued.</param>
            <param name="segment">The segment from which the item was dequeued.</param>
            <param name="result">The dequeued item.</param>
            <returns>true if an item could be dequeued; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.TryPeek(`0@)">
            <summary>Attempts to peek at an item in the queue.</summary>
            <param name="result">The peeked item.</param>
            <returns>true if an item could be peeked; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.TryPeekSlow(System.Threading.Tasks.SingleProducerSingleConsumerQueue{`0}.Segment@,`0[]@,`0@)">
            <summary>Attempts to peek at an item in the queue.</summary>
            <param name="array">The array from which the item is peeked.</param>
            <param name="segment">The segment from which the item is peeked.</param>
            <param name="result">The peeked item.</param>
            <returns>true if an item could be peeked; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.TryDequeueIf(System.Predicate{`0},`0@)">
            <summary>Attempts to dequeue an item from the queue.</summary>
            <param name="predicate">The predicate that must return true for the item to be dequeued.  If null, all items implicitly return true.</param>
            <param name="result">The dequeued item.</param>
            <returns>true if an item could be dequeued; otherwise, false.</returns>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.TryDequeueIfSlow(System.Predicate{`0},System.Threading.Tasks.SingleProducerSingleConsumerQueue{`0}.Segment@,`0[]@,`0@)">
            <summary>Attempts to dequeue an item from the queue.</summary>
            <param name="predicate">The predicate that must return true for the item to be dequeued.  If null, all items implicitly return true.</param>
            <param name="array">The array from which the item was dequeued.</param>
            <param name="segment">The segment from which the item was dequeued.</param>
            <param name="result">The dequeued item.</param>
            <returns>true if an item could be dequeued; otherwise, false.</returns>
        </member>
        <member name="P:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.IsEmpty">
            <summary>Gets whether the collection is currently empty.</summary>
            <remarks>WARNING: This should not be used concurrently without further vetting.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.GetEnumerator">
            <summary>Gets an enumerable for the collection.</summary>
            <remarks>WARNING: This should only be used for debugging purposes.  It is not safe to be used concurrently.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.System#Collections#IEnumerable#GetEnumerator">
            <summary>Gets an enumerable for the collection.</summary>
            <remarks>WARNING: This should only be used for debugging purposes.  It is not safe to be used concurrently.</remarks>
        </member>
        <member name="P:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Count">
            <summary>Gets the number of items in the collection.</summary>
            <remarks>WARNING: This should only be used for debugging purposes.  It is not meant to be used concurrently.</remarks>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.System#Threading#Tasks#IProducerConsumerQueue{T}#GetCountSafe(System.Object)">
            <summary>A thread-safe way to get the number of items in the collection. May synchronize access by locking the provided synchronization object.</summary>
            <remarks>The Count is not thread safe, so we need to acquire the lock.</remarks>
        </member>
        <member name="T:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Segment">
            <summary>A segment in the queue containing one or more items.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Segment._next">
            <summary>The next segment in the linked list of segments.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Segment._array">
            <summary>The data stored in this segment.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Segment._state">
            <summary>Details about the segment.</summary>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.Segment.#ctor(System.Int32)">
            <summary>Initializes the segment.</summary>
            <param name="size">The size to use for this segment.</param>
        </member>
        <member name="T:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState">
            <summary>Stores information about a segment.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._pad0">
            <summary>Padding to reduce false sharing between the segment's array and _first.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._first">
            <summary>The index of the current head in the segment.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._lastCopy">
            <summary>A copy of the current tail index.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._pad1">
            <summary>Padding to reduce false sharing between the first and last.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._firstCopy">
            <summary>A copy of the current head index.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._last">
            <summary>The index of the current tail in the segment.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SegmentState._pad2">
            <summary>Padding to reduce false sharing with the last and what's after the segment.</summary>
        </member>
        <member name="T:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SingleProducerSingleConsumerQueue_DebugView">
            <summary>Debugger type proxy for a SingleProducerSingleConsumerQueue of T.</summary>
        </member>
        <member name="F:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SingleProducerSingleConsumerQueue_DebugView._queue">
            <summary>The queue being visualized.</summary>
        </member>
        <member name="M:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SingleProducerSingleConsumerQueue_DebugView.#ctor(System.Threading.Tasks.SingleProducerSingleConsumerQueue{`0})">
            <summary>Initializes the debug view.</summary>
            <param name="queue">The queue being debugged.</param>
        </member>
        <member name="P:System.Threading.Tasks.SingleProducerSingleConsumerQueue`1.SingleProducerSingleConsumerQueue_DebugView.Items">
            <summary>Gets the contents of the list.</summary>
        </member>
        <member name="T:System.Threading.Tasks.PaddingHelpers">
            <summary>A placeholder class for common padding constants and eventually routines.</summary>
        </member>
        <member name="F:System.Threading.Tasks.PaddingHelpers.CACHE_LINE_SIZE">
            <summary>A size greater than or equal to the size of the most common CPU cache lines.</summary>
        </member>
        <member name="T:System.Threading.Tasks.PaddingFor32">
            <summary>Padding structure used to minimize false sharing in SingleProducerSingleConsumerQueue{T}.</summary>
        </member>
    </members>
</doc>
