Advertisement
Guest User

Untitled

a guest
Apr 6th, 2013
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. /*DataflowBlock.cs(70,9,70,16): error CS0117: 'System.Threading.Tasks.Task' does not contain a definition for 'WhenAll'*/
  2. public static Task<int> Choose<T1, T2> (
  3.             ISourceBlock<T1> source1, Action<T1> action1,
  4.             ISourceBlock<T2> source2, Action<T2> action2,
  5.             DataflowBlockOptions dataflowBlockOptions)
  6.         {
  7.             if (source1 == null)
  8.                 throw new ArgumentNullException ("source1");
  9.             if (source2 == null)
  10.                 throw new ArgumentNullException ("source2");
  11.             if (action1 == null)
  12.                 throw new ArgumentNullException ("action1");
  13.             if (action2 == null)
  14.                 throw new ArgumentNullException ("action2");
  15.             if (dataflowBlockOptions == null)
  16.                 throw new ArgumentNullException ("dataflowBlockOptions");
  17.  
  18.             var chooser = new ChooserBlock<T1, T2, object> (action1, action2, null, dataflowBlockOptions);
  19.             source1.LinkTo (chooser.Target1);
  20.             source2.LinkTo (chooser.Target2);
  21.  
  22.             Task.WhenAll (source1.Completion, source2.Completion)
  23.                 .ContinueWith (_ => chooser.AllSourcesCompleted ());
  24.  
  25.             return chooser.Completion;
  26.         }
  27.  
  28. /*DataflowBlock.cs(300,17,300,27): error CS0117: 'System.Threading.Tasks.Task' does not contain a definition for 'FromResult' */
  29.         public static Task<bool> OutputAvailableAsync<TOutput> (
  30.             this ISourceBlock<TOutput> source, CancellationToken cancellationToken)
  31.         {
  32.             if (source == null)
  33.                 throw new ArgumentNullException ("source");
  34.  
  35.             cancellationToken.ThrowIfCancellationRequested ();
  36.  
  37.             if (source.Completion.IsCompleted || source.Completion.IsCanceled
  38.                 || source.Completion.IsFaulted)
  39.                 return Task.FromResult (false);
  40.  
  41.             var block = new OutputAvailableBlock<TOutput> ();
  42.             var bridge = source.LinkTo (block,
  43.                 new DataflowLinkOptions { PropagateCompletion = true });
  44.             return block.AsyncGet (bridge, cancellationToken);
  45.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement