diff --git a/Modbus.Net/Modbus.Net/TaskManager.cs b/Modbus.Net/Modbus.Net/TaskManager.cs index d2e8c8c..ee85011 100644 --- a/Modbus.Net/Modbus.Net/TaskManager.cs +++ b/Modbus.Net/Modbus.Net/TaskManager.cs @@ -512,14 +512,14 @@ namespace Modbus.Net /// private async Task MaintainTasks2Async() { - var tasks = new List(); - HashSet saveMachines = new HashSet(); - lock (_unlinkedMachines) - { - saveMachines.UnionWith(_unlinkedMachines); - } try { + var tasks = new List(); + HashSet saveMachines = new HashSet(); + lock (_unlinkedMachines) + { + saveMachines.UnionWith(_unlinkedMachines); + } foreach (var machine in saveMachines) { CancellationTokenSource cts = new CancellationTokenSource(); @@ -527,7 +527,7 @@ namespace Modbus.Net var task = _tasks.StartNew(() => RunTask(machine).WithCancellation(cts.Token)); tasks.Add(task); } - await Task.WhenAll(); + await Task.WhenAll(tasks); } catch {