Esempio n. 1
0
        private static void Main(string[] args)
        {
            Logger logger = new Logger();
            MemoryChannel channel = new MemoryChannel();
            Delay delay = new Delay(3, 100);

            Receiver receiver = new Receiver(channel, logger, 16);
            receiver.DataReceived += ReceiverOnDataReceived;
            Sender sender = new Sender(channel, logger, 16, 1, delay);

            Task receiverTask = receiver.RunAsync();
            Task senderTask = sender.RunAsync(CancellationToken.None);

            try
            {
                Task.WaitAll(receiverTask, senderTask);
            }
            catch (AggregateException e)
            {
                Console.WriteLine(e.ToString());
            }

            channel.Dispose();

            logger.WriteLine("Done.");
        }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Sender"/> class.
 /// </summary>
 /// <param name="channel">
 /// The channel.
 /// </param>
 /// <param name="logger">
 /// The logger.
 /// </param>
 /// <param name="bufferSize">
 /// The buffer size.
 /// </param>
 /// <param name="fill">
 /// The fill.
 /// </param>
 /// <param name="delay">
 /// The delay.
 /// </param>
 public Sender(MemoryChannel channel, Logger logger, int bufferSize, byte fill, Delay delay)
 {
     this.channel = channel;
     this.logger = logger;
     this.bufferSize = bufferSize;
     this.fill = fill;
     this.delay = delay;
 }