int dueInSeconds = 30;
DateTime dueTime = DateTime.Now + TimeSpan.FromSeconds(dueInSeconds);
int top = Console.CursorTop;
int left = Console.CursorLeft;
System.Threading.ThreadPool.QueueUserWorkItem(delegate(object o)
{
while (true)
{
TimeSpan remaining = dueTime - DateTime.Now;
if (remaining.TotalSeconds <= 0) return;
Console.SetCursorPosition(left, top);
Console.Write(string.Format("Remaining seconds: {0,5}", (int)remaining.TotalSeconds));
System.Threading.Thread.Sleep(1000);
}
});
Console.ReadLine();
搞定了