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
{