diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs index 9cc7816e..4f6d790f 100644 --- a/IOB-MAN/IOBManPanel.cs +++ b/IOB-MAN/IOBManPanel.cs @@ -430,6 +430,7 @@ namespace IOB_MAN } finally { + checkRunning = false; if (hasLock) { Monitor.Exit(_locker); @@ -743,6 +744,7 @@ namespace IOB_MAN private void forceCheckTimer_Tick(object sender, EventArgs e) { +#if false if (!checkRunning) { try @@ -755,6 +757,21 @@ namespace IOB_MAN Logging.Instance.Error($"forceCheckTimer_Tick {exc}"); } } +#endif + + if (!checkRunning) + { + try + { + Task result = Task.Run(() => checkProcessStatusAsync().ConfigureAwait(false)); + result.Wait(); + } + catch (Exception exc) + { + Logging.Instance.Error($"forceCheckTimer_Tick {exc}"); + } + } + checkWatchdog(); // riavvio i timer x sicurezza... UI_Timer.Stop(); @@ -949,35 +966,19 @@ namespace IOB_MAN /// private void MainTimer_Tick(object sender, EventArgs e) { - var hasLock = false; - try + if (!checkRunning) { - Monitor.TryEnter(_locker, ref hasLock); - if (!hasLock) + try { - return; + //Task result = checkProcessStatusAsync(); + //result.Wait(); + + Task result = Task.Run(() => checkProcessStatusAsync().ConfigureAwait(false)); + result.Wait(); } - if (!checkRunning) + catch (Exception exc) { - try - { - Task result = checkProcessStatusAsync(); - result.Wait(); -#if false - await Task.Run(() => checkProcessStatusAsync()).ConfigureAwait(false); -#endif - } - catch (Exception exc) - { - Logging.Instance.Error($"MainTimer_Tick {exc}"); - } - } - } - finally - { - if (hasLock) - { - Monitor.Exit(_locker); + Logging.Instance.Error($"MainTimer_Tick {exc}"); } } }