输入仍处于挂起状态时运行输出

时间:2013-07-25 13:34:25

标签: c# input console output

这就是我想要做的事情:

  1. 控制台要求输入
  2. 控制台输出内容
  3. 输出即将到来时仍可输入
  4. 所以它基本上做了以下几点:

    string message;
    Console.WriteLine("Please enter your message");
    message = Console.ReadLine();
    Console.WriteLine("While you're writing that, this is shown,");
    Console.WriteLine("And you can continue to write as things are being outputted");
    

    我怎样才能实现此功能?我需要运行多个线程吗?将输入从一个控制台窗口发送到另一个控制台窗口怎么样?

1 个答案:

答案 0 :(得分:0)

以下是使用Task

的一个非常简单的示例
while (true)
{
    Console.WriteLine("Enter number");
    var input = Console.ReadLine();
    System.Threading.Tasks.Task.Factory.StartNew(() => 
    {
        int n;
        if(Int32.TryParse(input, out n))
            for(int i=n; i>0; i--)
            {
                Console.WriteLine(String.Format("{0} -> {1}", n, i));
                Thread.Sleep(500);
            }
    });
}

这是一个无限循环,要求一个数字。如果输入一个数字,程序将开始倒计时,但您可以在输出运行时输入下一个数字。