C# 使用 while(true) 理论上,会一直循环下去,最近发现我的程序,突然 while(true) 自动停止了,而且也没有报错,于是我自己找了一下原因,这里我模拟了一个错误,用来实现在 while(true) 中如果真实的报错,会发生什么
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace while自动终止
{
internal class Program
{
static void Main(string[] args)
{
Task.Run(Test);
Console.ReadKey();
}
static int index;
private static void Test()
{
while (true)
{
index++;
Console.WriteLine(index);
Thread.Sleep(1000);
if (index > 5)
throw new Exception("error");
}
}
}
}
运行:
当前报错,是因为程序正在调试,如果直接运行生成的 exe 文件,那么就不会报错了
从上图可以看到,运行到 6 这里,while(true) 便停止了运行。
所以,我们平时在 while(true) 一定要注意这个情况
end