Ejemplo n.º 1
0
 private async static void ProduceItems(PipelineSink<int> sink)
 {
     for (int i = 0; i < 10; i++)
     {
         await sink.Yield(i);
     }
 }
Ejemplo n.º 2
0
        private async static void TransformItems(PipelineSource<int> source, PipelineSink<string> sink)
        {
            Tuple<bool, int> current = await source.Receive();

            while (current.Item1)
            {
                await sink.Yield("Got " + current.Item2);
                current = await source.Receive();
            }
        }
Ejemplo n.º 3
0
        private async static void FilterItems(PipelineSource<int> source, PipelineSink<int> sink)
        {
            Tuple<bool, int> current = await source.Receive();

            while (current.Item1)
            {
                int value = current.Item2;
                // Yield even numbers once, and multiples of 3 once (so 0 and 6 will be yielded twice each)
                if (value % 2 == 0)
                {
                    await sink.Yield(value);
                }
                if (value % 3 == 0)
                {
                    await sink.Yield(value);
                }
                current = await source.Receive();
            }
        }