static void DataImport(IImport import) { var cts = new CancellationTokenSource(); cts.CancelAfter(4000); var ct = cts.Token; Task importTask = import.ImportXmlFilesAsync(@"C:\data", ct); while (!importTask.IsCompleted) { Console.Write("."); if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Q) { try { cts.Cancel(); importTask.Wait(); } catch (AggregateException ex) { Console.WriteLine(ex.Flatten()); } } Console.WriteLine(importTask.Status); Thread.Sleep(250); } }
public static void DataImport(IImport import) { var tcs = new CancellationTokenSource(); CancellationToken ct = tcs.Token; Task importTask = import.ImportXmlFilesAsync(@"C:\data", ct); while (!importTask.IsCompleted) { Console.Write("."); if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Q) { tcs.Cancel(); } Thread.Sleep(250); } }
public static void DataImport(IImport import) { var tcs = new CancellationTokenSource(); CancellationToken ct = tcs.Token; Task importTask = import.ImportXmlFilesAsync(@"..\..\data", ct, new Progress <ImportProgress>(DisplayProgress)); while (!importTask.IsCompleted) { if (Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Q) { tcs.Cancel(); } Thread.Sleep(250); } Console.WriteLine(importTask.Status); }