public void Start()

in Source/Tx.Core/Playback.cs [183:225]


        public void Start()
        {
            foreach (IInputStream i in _inputs)
            {
                i.StartTime = StartTime;
                i.EndTime = EndTime;

                if (KnownTypes == null)
                    continue;

                foreach (Type t in KnownTypes)
                {
                    i.AddKnownType(t);
                }
            }

            if (_inputs.Count == 0)
                throw new Exception("No input sequences were added to the Playback");

           if (_inputs.Count > 1)
            {
                IEnumerator<Timestamped<object>>[] queues = (from i in _inputs select i.Output).ToArray();
                _mergesort = new PullMergeSort<Timestamped<object>>(e => e.Timestamp.DateTime, queues);
                _timeSource.Connect();
                _pumpStart = new ManualResetEvent(false);
                _pump = new OutputPump<Timestamped<object>>(_mergesort, _subject, _pumpStart);
                _pumpStart.Set();

                _stopwatch.Start();
                foreach (IInputStream i in _inputs)
                {
                    i.Start();
                }
            }
            else
            {
                _timeSource.Connect();
                IInputStream singleInput = _inputs[0];
                _stopwatch.Start();
                singleInput.Start(_subject);
            }

        }