C#的Timers类问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 03:31:46
我想用1s的间隔来在控制台输出for循环的内容.比如for(int i=1;i<=10;i++)
console.writeline(i);
即每输出一个间隔1秒.如何办到?

for(int i=1;i<=10;i++)
{
Console.WriteLine(i);
System.Threading.Thread.Sleep(1000); //线程挂起一秒
}

这种方法,在这1秒内,程序无响应,如果要更高级的用法,可以使用timer,方法如下:
namespace ConsoleApp2
{
class Program
{
static int idx = 0;
static System.Timers.Timer tmr = new System.Timers.Timer();

static void Main(string[] args)
{
tmr.Interval = 1000D; //1秒
tmr.AutoReset = true;
tmr.Elapsed += new System.Timers.ElapsedEventHandler(tmr_Elapsed);
tmr.Start();
Console.ReadKey();
}

static void tmr_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
idx++;
if (idx < 11)
Console.WriteLine(idx);
else
tmr.Stop();
}
}
}

循环内加上
Thread.Sleep(1000