Да.Вы можете писать в Консоль из отдельного потока, блокируя Console.ReadLine.
При этом это может привести к путанице.В вашем случае вы выясните, что пользователь печатает на полпути через свою строку (через Console.Clear ()), а также резко измените положение курсора.
Редактировать: вотпример, который показывает это:
namespace ConsoleApplication1
{
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Starting");
ThreadPool.QueueUserWorkItem(
cb =>
{
int i = 1;
while (true)
{
Console.WriteLine("Background {0}", i++);
Thread.Sleep(1000);
}
});
Console.WriteLine("Blocking");
Console.WriteLine("Press Enter to exit...");
Console.ReadLine();
}
}
}
Если вы запустите это, вы увидите, что Консоль ожидает ReadLine, но фоновый поток все еще печатает.