Как разделить вывод консоли на входные и выходные потоки?C#

Место общения программистов C#
Anonymous
Как разделить вывод консоли на входные и выходные потоки?

Сообщение Anonymous »

Мое консольное приложение содержит несколько объектов, каждый из которых выполняется в отдельной задаче. Все эти объекты используют Microsoft.Extensions.Logging.ILogger для вывода своего состояния на консоль. Через поток ввода консоли я ввожу команды для управления этими объектами. Дело в том, что когда я ввожу команды (например, "остановить все"), консоль выглядит так:
14:43:11 dbug: Program[0] [Object 1] I am Object One!
st14:43:12 info: Program[0] [Object 2] I am Object Two!
14:43:12 info: Program[0] [Object 1] I am Object One!
op 14:43:13 info: Program[0] [Object 3] I am Object Three!
14:43:13 info: Program[0] [Object 2] I am Object Two!
14:43:14 info: Program[0] [Object 3] I am Object Three!
14:43:14 info: Program[0] [Object 1] I am Object One!
al14:43:15 dbug: Program[0] [Object 2] I am Object Two!
l14:43:15 info: Program[0] [Object 1] I am Object One!

Желаемое поведение — иметь отдельную строку в нижней части буфера консоли, которая будет отображать текущий ввод из входного потока, ПОКА я набираю команду, например:
р>
14:43:11 dbug: Program[0] [Object 1] I am Object One!
14:43:12 info: Program[0] [Object 2] I am Object Two!
14:43:12 info: Program[0] [Object 1] I am Object One!
14:43:13 info: Program[0] [Object 3] I am Object Three!
14:43:13 info: Program[0] [Object 2] I am Object Two!
14:43:14 info: Program[0] [Object 3] I am Object Three!
14:43:14 info: Program[0] [Object 1] I am Object One!
14:43:15 dbug: Program[0] [Object 2] I am Object Two!
14:43:15 info: Program[0] [Object 1] I am Object One!
Your command >>> stop all


Подробнее здесь: https://stackoverflow.com/questions/789 ... ut-streams

Вернуться в «C#»