大家在执行一些控制台程序的时候,应该都遇到过比如说这个程序执行的时间比较长的情况,此时很多程序都会在控制台不断输出如 ...  使用户知道程序还在运行中,这个 ... 是运动的,就是说一直在某一行 输出 ... 然后删除 ... ,接着再输出 ...,直至程序结束。如果我说的不够清楚的话,那就提我的要求吧,我希望是在执行控制台程序的时候,让用户明白当前程序执行的状态,但我不希望一直在控制台循环的换行打印,希望信息循环的显示在一行。
查MSDN没有相关的,肯求各位帮忙。

解决方案 »

  1.   

    Console.Write
    Console.WriteLine
    Console.SetCusorPosition这三个方法就可以完成你的功能了,
      

  2.   

    详细一点的是,写信息用Write/WriteLine,更新信息前首先设置SetCursorPosition可以覆盖原来的信息,这样,信息就循环在一行里面了
      

  3.   

    循环输出
    Console.Write(".")
    计数,判断
    满时,SetCursorPosition
      

  4.   

    晕到,吓我一跳,我以为我MSDN查的不仔细呢,呵呵。
    刚查了下,此方法在.net2.0的时候才提供,.net1.1没有啊,各位,继续求助。
      

  5.   

    1.1中也可以的,2.0中不过是封装了一下\v\r\n\b等,自己慢慢弄也能出来的,就是稍微麻烦一点.别人没给做出来,自己也不会被饿死
      

  6.   

    不知道LS的用的这个Console.SetCusorPosition是哪个版本的,拔了半天拔不到
      

  7.   

    开两个线程!
    建立一个全局的状态值(作用计算完成任务的程序)
    一个线程完成你的任务 。完成的时候 在一些地方修改你定义的全局状态值
    另一个线程 读取状态值 根据他的值显示 ..的数量,然后Thead.sleep(1000)一般窗体都是这样实现的。
      

  8.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;namespace ConsoleApplication1
    {
    class Program
    {

    static void Main(string[] args)
    {
    int i = 10;
    char backchar = (char)8;
    while (true)
    {
    for (int y = 0; y < 5; y++)
    {
    for (int x = 0; x < i; x++)
    {
    Console.Write(".");
    Thread.Sleep(100);
    }
    for (int x = 0; x < i; x++)
    {
    Console.Write(backchar);
    Console.Write(" ");
    Console.Write(backchar);
    Thread.Sleep(100);
    }
    }
    //if (Console.ReadLine() == "quit") break;
    }
    }
    }
    }
      

  9.   

    yangdd,赞一个,领教了 (char)8 的威力。