public void ParseLogsFromDiskLive(bool reverse, bool killOnly, bool filter, CoconaAppContext context) { Spinner.Start("Starting live parsing ...", spinner => { var arcdpsSpinner = new Spinner("arcdps watcher: starting..."); var eliteInsightsSpinner = new Spinner("Elite Insights watcher: starting..."); arcdpsSpinner.Start(); eliteInsightsSpinner.Start(); var arcDpsWatcher = WatchForArcDpsFiles(new List <string>(), arcdpsSpinner); var eiWatcher = WatchForEiFiles(new List <RaidModel>(), reverse, killOnly, filter, eliteInsightsSpinner); while (!context.CancellationToken.IsCancellationRequested) { spinner.Text = "Live parsing ... (press CTRL+C to stop)"; } arcDpsWatcher.EnableRaisingEvents = false; eiWatcher.EnableRaisingEvents = false; eiWatcher.Dispose(); arcDpsWatcher.Dispose(); arcdpsSpinner.Info("arcdps watcher: stopped"); eliteInsightsSpinner.Info("Elite Insights watcher: stopped"); spinner.Info("Live parsing stopped."); }); }