private static void StartIterations(Action.Action cropCycle, Action.Action goHome, Action.Action rescureInvalidState, int iterations) { StreamWriter fs = GetFileStream(); try { goHome.ExecuteAll(fs); for (int i = 0; i < iterations; i++) { try { LogToFileAndConsole(fs, Environment.NewLine + "Executing iteration " + (i + 1)); cropCycle.ExecuteAll(fs); } catch (InvalidStateException ise) { LogToFileAndConsole(fs, Environment.NewLine + Environment.NewLine + "invalid state Exception: " + Environment.NewLine + ise); rescureInvalidState.ExecuteAll(fs); } } } catch (Exception e) { LogToFileAndConsole(fs, "Error mitigation failed\n" + e); } finally { fs.Flush(); fs.Close(); } }