Answered Why doesn't BufferWithTime complete?

  • Sunday, December 13, 2009 2:07 PM
     
     

        internal class Program
        {
            private static void Main()
            {
                // This completes
                using (GetSequence().ToObservable().Subscribe(Console.WriteLine, () => Console.WriteLine("complete")))
                {
                    Console.ReadKey();
                }

                // This doesn't
                using (GetSequence().ToObservable().BufferWithTime(TimeSpan.FromSeconds(1)).Subscribe(
                    xs =>
                        {
                            Console.Write("{0}: ", Environment.TickCount);

                            foreach (int x in xs)
                            {
                                Console.Write("{0} ", x);
                            }

                            Console.WriteLine();
                        },

                    () => Console.WriteLine("complete")))
                {
                    Console.ReadKey();
                }
            }

            public static IEnumerable<int> GetSequence()
            {
                Thread.Sleep(500);
                yield return 1;
                Thread.Sleep(500);
                yield return 2;
                Thread.Sleep(500);
                yield return 3;
                Thread.Sleep(500);
                yield return 4;
                Thread.Sleep(500);
                yield return 5;
                Thread.Sleep(500);
                yield return 6;
                yield break;
            }
        }

All Replies

  • Monday, December 14, 2009 9:50 PM
     
     Answered
    Hi Philip,

    you've hit a bug. We've fixed this for the upcoming release.

    Thanks for the report!


    Jeffrey