Yes. You can write to the Console from a separate thread while blocking on Console.ReadLine.
That being said, it's going to cause confusion. In your case, you'll clear out what the user is typing half-way through their line (via Console.Clear()), plus move the cursor position around dramatically.
Edit: Here's an example that shows this:
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();
}
}
}
If you run this, you'll see the Console waits on ReadLine, but the background thread still prints.