public ChannelMultiplexer(IChannel[] channels, int[] ids, IChannel output, bool autoStart, bool waitOnStop)
        {
            int count = channels.Length;
            if(count != ids.Length)
                throw new ArgumentException("Channel and ID count mismatch.","ids");

            forwarders = new ChannelForwarder[count];
            for(int i=0;i<count;i++)
                forwarders[i] = new ChannelForwarder(channels[i],output,ids[i],autoStart,waitOnStop);

            SetRunnables((SingleRunnable[])forwarders);
        }
        public ChannelMultiplexer(IChannel[] channels, int[] ids, IChannel output, bool autoStart, bool waitOnStop)
        {
            int count = channels.Length;

            if (count != ids.Length)
            {
                throw new ArgumentException("Channel and ID count mismatch.", "ids");
            }

            forwarders = new ChannelForwarder[count];
            for (int i = 0; i < count; i++)
            {
                forwarders[i] = new ChannelForwarder(channels[i], output, ids[i], autoStart, waitOnStop);
            }

            SetRunnables((SingleRunnable[])forwarders);
        }