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."); }
/// <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; }