// See https://aka.ms/new-console-template for more information using System.IO.Abstractions; using qmonlib; using qmonlib.Test; using Quadarax.Foundation.Core.Logging; var logger = new ConsoleLogger(); var cancel = new CancellationTokenSource(); new Thread(() => { OnStartReceiver(cancel.Token); }).Start(); Console.WriteLine("Waiting for receiver starts..."); Thread.Sleep(5000); using (var cli = new QMonClient("TST", QMonClientConfiuration.CreateDefault(), logger)) { cli.Notify(new TestItem() { Age = 4, FirstName = "Adam", LastName = "Votruba" }); cli.Notify(new TestItem() { Age = 47, FirstName = "Dalibor", LastName = "Votruba" }); cli.Notify(new TestItem() { Age = 43, FirstName = "Dita", LastName = "Rychetská" }); Console.WriteLine("Press any key to close..."); Console.ReadKey(); cancel.Cancel(); } void OnGeneralReceived(MonGeneral general) { Console.WriteLine($"General received: {general.InstanceIdentifier} items count {general.Items.Count}"); } void OnDataReceived(MonData[] data) { Console.WriteLine($"Data received: Count={data.Length}"); } void OnStartReceiver(CancellationToken cancelToken) { using (var rcv = new QMonReceiver( new FileSystem(), QMonReceiverConfiguration.CreateDefault(), logger, OnGeneralReceived, OnDataReceived)) { while (!cancelToken.IsCancellationRequested) Thread.Sleep(100); } Console.WriteLine("Receiver stopped"); }