/// <summary> /// Links to a target block. /// </summary> /// <typeparam name="TOutput"></typeparam> /// <param name="builder"></param> /// <param name="targetBlock"></param> /// <param name="predicate"></param> /// <param name="declinedTargetBlock"></param> /// <returns></returns> public static IDataflowBuilder LinkToTarget <TOutput>( this IMultipleSourceDataflowBuilder <TOutput> builder , ITargetBlock <TOutput> targetBlock , Predicate <TOutput> predicate , ITargetBlock <TOutput> declinedTargetBlock = null) { return(builder.LinkToTarget(targetBlock, DataflowDefaultOptions.DefaultLinkOptions, predicate, declinedTargetBlock, DataflowDefaultOptions.DefaultLinkOptions)); }
/// <summary> /// Links to a target block. /// </summary> /// <typeparam name="TOutput"></typeparam> /// <param name="builder"></param> /// <param name="targetBlock"></param> /// <param name="linkOptions"></param> /// <param name="predicate"></param> /// <param name="declinedTargetBlock"></param> /// <param name="declinedLinkOptions"></param> /// <returns></returns> public static IDataflowBuilder LinkToTarget <TOutput>( this IMultipleSourceDataflowBuilder <TOutput> builder , ITargetBlock <TOutput> targetBlock , DataflowLinkOptions linkOptions , Predicate <TOutput> predicate , ITargetBlock <TOutput> declinedTargetBlock , DataflowLinkOptions declinedLinkOptions) { if (builder == null) { return(null); } if (targetBlock == null) { throw new ArgumentNullException("targetBlock"); } if (linkOptions == null) { throw new ArgumentNullException("linkOptions"); } if (predicate == null) { throw new ArgumentNullException("predicate"); } if (declinedTargetBlock == null) { throw new ArgumentNullException("declinedTargetBlock"); } if (declinedLinkOptions == null) { throw new ArgumentNullException("declinedLinkOptions"); } var nextBuilder = builder.LinkToTarget(targetBlock, linkOptions, predicate); if (declinedTargetBlock != null) { // LinkTo declined target (builder as MultipleSourceDataflowBuilder <TOutput>).Link(declinedTargetBlock, declinedLinkOptions ?? DataflowDefaultOptions.DefaultLinkOptions, null); } return(nextBuilder); }