static void CreateWorkerConsole(string name, TimeSpan interval, double margin) { // Create console IConsole console = ConsoleAsync.CreateConsole(name); // Create new instance of worker TestWorker worker = new TestWorker(interval, console.Name, margin); // Add worker to collection workers.Add(worker); // Add worker to newly created console IConsoleWorker workerInterface = console.AddWorker(worker); // Add command suspend console.AddCommand("suspend", (writer, list) => { // Suspend worker and write a message workerInterface.Suspend(); writer.Info("Worker suspended").NewLine(); }); // Add command resume console.AddCommand("resume", (writer, list) => { // Resume worker and write a message workerInterface.Resume(); writer.Info("Worker resumed").NewLine(); }); // Add command quit console.AddCommand("quit", (writer, list) => ConsoleAsync.Quit()); }
public void RemoveWorker(IConsoleWorker existingWorker) { WorkerManager worker = Workers.FirstOrDefault(w => w.UniqueID.Equals(existingWorker.UniqueID)); if (worker == null) { throw new InvalidOperationException("Worker is not in console"); } Workers.Remove(worker); worker.StopAsync().Wait(); }