diff --git a/src/Tools/dotnet-counters/CounterMonitor.cs b/src/Tools/dotnet-counters/CounterMonitor.cs index 87bd9d2557..153f54b780 100644 --- a/src/Tools/dotnet-counters/CounterMonitor.cs +++ b/src/Tools/dotnet-counters/CounterMonitor.cs @@ -464,7 +464,7 @@ public async Task Monitor( { return ReturnCode.ArgumentError; } - _ct.Register(() => _shouldExit.TrySetResult(ReturnCode.Ok)); + ct.Register(() => _shouldExit.TrySetResult(ReturnCode.Ok)); DiagnosticsClientBuilder builder = new DiagnosticsClientBuilder("dotnet-counters", 10); using (DiagnosticsClientHolder holder = await builder.Build(ct, _processId, diagnosticPort, showChildIO: false, printLaunchCommand: false)) @@ -537,7 +537,7 @@ public async Task Collect( return ReturnCode.ArgumentError; } - _ct.Register(() => _shouldExit.TrySetResult(ReturnCode.Ok)); + ct.Register(() => _shouldExit.TrySetResult(ReturnCode.Ok)); DiagnosticsClientBuilder builder = new DiagnosticsClientBuilder("dotnet-counters", 10); using (DiagnosticsClientHolder holder = await builder.Build(ct, _processId, diagnosticPort, showChildIO: false, printLaunchCommand: false)) @@ -841,7 +841,7 @@ private Task Start() while(!_shouldExit.Task.Wait(250)) { HandleBufferedEvents(); - if (Console.KeyAvailable) + if (!Console.IsInputRedirected && Console.KeyAvailable) { ConsoleKey cmd = Console.ReadKey(true).Key; if (cmd == ConsoleKey.Q) @@ -858,7 +858,6 @@ private Task Start() } } } - StopMonitor(); return _shouldExit.Task; }