diff --git a/Modbus.Net/ModBus.Net/TaskManager.cs b/Modbus.Net/ModBus.Net/TaskManager.cs index 552792d..092e0a7 100644 --- a/Modbus.Net/ModBus.Net/TaskManager.cs +++ b/Modbus.Net/ModBus.Net/TaskManager.cs @@ -212,6 +212,8 @@ namespace ModBus.Net if (_timer != null) { _timer.Change(Timeout.Infinite, Timeout.Infinite); + _timer.Dispose(); + _timer = null; } } else if (value < 0) return; @@ -298,7 +300,15 @@ namespace ModBus.Net private void MaintainTasks(object sender) { - AsyncHelper.RunSync(MaintainTasksAsync); + try + { + AsyncHelper.RunSync(MaintainTasksAsync); + } + catch (Exception) + { + TaskStop(); + TaskStart(); + } } private async Task MaintainTasksAsync()