我需要一个需要永远每 x 秒运行一次的操作,为此我做了:
protected void Application_Start()
{
InitialieOnce.Initialize();
}
public static class InitialieOnce
{
private static bool initialized = false;
public static void Initialize()
{
if (initialized == false)
{
initialized = true;
Thread t = new Thread(x => CheckStatus());
t.IsBackground = true;
t.Start();
}
}
private static void CheckStatus()
{
//My script goes here.
Thread.Sleep(8000);
CheckStatus();
}
}
一段时间后(大约 5 分钟),我收到此错误:
“在 mscorlib.dll 中发生了“System.StackOverflowException”类型的未处理异常”
这个错误是否与我如何制作无限循环有关?
如果是,是否有更好的方法来实现这一点,我可以修复它,或者这段代码可以吗?