public async Task SampleChangerParallelManagmentTest() { var ct1 = new CancellationTokenSource(TimeSpan.FromMinutes(1)).Token; //SampleChanger[] s = null; var s1 = new SampleChanger(107376); var s2 = new SampleChanger(114005); try { //s = new SampleChanger[] { new SampleChanger(107374), new SampleChanger(107375) }; s1.ErrorOccurred += (i, j) => { Console.WriteLine($"{i}, {j}"); }; s2.ErrorOccurred += (i, j) => { Console.WriteLine($"{i}, {j}"); }; s1.PositionReached += async(s11) => await PositionReachedHandler(s11).ConfigureAwait(false); s2.PositionReached += async(s22) => await PositionReachedHandler(s22).ConfigureAwait(false); await Task.WhenAll(XemoCycle(s1), XemoCycle(s2)); Console.WriteLine("Press enter for exit..."); Console.ReadLine(); } catch (TaskCanceledException) { Console.WriteLine("The task was cancelled"); s1.Stop(); s2.Stop(); } finally { s1.Stop(); s1.Disconnect(); s2.Stop(); s2.Disconnect(); } }
private void Stop(SampleChanger sc) { sc?.Stop(); Console.WriteLine($"{sc.PairedDetector} has stopped"); }