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 分)、次のエラーが表示されます。
「タイプ 'System.StackOverflowException' の未処理の例外が mscorlib.dll で発生しました」
このエラーは、無限ループの作成方法に関連している可能性がありますか?
はいの場合、これを達成するためのより良い方法はありますか、修正できますか、またはこのコードは問題ありませんか?