Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*DataflowBlock.cs(70,9,70,16): error CS0117: 'System.Threading.Tasks.Task' does not contain a definition for 'WhenAll'*/
- public static Task<int> Choose<T1, T2> (
- ISourceBlock<T1> source1, Action<T1> action1,
- ISourceBlock<T2> source2, Action<T2> action2,
- DataflowBlockOptions dataflowBlockOptions)
- {
- if (source1 == null)
- throw new ArgumentNullException ("source1");
- if (source2 == null)
- throw new ArgumentNullException ("source2");
- if (action1 == null)
- throw new ArgumentNullException ("action1");
- if (action2 == null)
- throw new ArgumentNullException ("action2");
- if (dataflowBlockOptions == null)
- throw new ArgumentNullException ("dataflowBlockOptions");
- var chooser = new ChooserBlock<T1, T2, object> (action1, action2, null, dataflowBlockOptions);
- source1.LinkTo (chooser.Target1);
- source2.LinkTo (chooser.Target2);
- Task.WhenAll (source1.Completion, source2.Completion)
- .ContinueWith (_ => chooser.AllSourcesCompleted ());
- return chooser.Completion;
- }
- /*DataflowBlock.cs(300,17,300,27): error CS0117: 'System.Threading.Tasks.Task' does not contain a definition for 'FromResult' */
- public static Task<bool> OutputAvailableAsync<TOutput> (
- this ISourceBlock<TOutput> source, CancellationToken cancellationToken)
- {
- if (source == null)
- throw new ArgumentNullException ("source");
- cancellationToken.ThrowIfCancellationRequested ();
- if (source.Completion.IsCompleted || source.Completion.IsCanceled
- || source.Completion.IsFaulted)
- return Task.FromResult (false);
- var block = new OutputAvailableBlock<TOutput> ();
- var bridge = source.LinkTo (block,
- new DataflowLinkOptions { PropagateCompletion = true });
- return block.AsyncGet (bridge, cancellationToken);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement