Преглед на файлове

Use Task.WhenAll to handle errors in both tasks.

Previously if there was an exception in the first task that is awaited the second task would not be awaited.
release/3.x.x
Johan x Lindqvist преди 5 години
родител
ревизия
ba9ceed7ce
променени са 1 файла, в които са добавени 4 реда и са изтрити 2 реда
  1. +4
    -2
      Source/MQTTnet/Client/MqttClient.cs

+ 4
- 2
Source/MQTTnet/Client/MqttClient.cs Целия файл

@@ -269,8 +269,10 @@ namespace MQTTnet.Client
await _adapter.DisconnectAsync(Options.CommunicationTimeout, CancellationToken.None).ConfigureAwait(false);
}

await WaitForTaskAsync(_packetReceiverTask, sender).ConfigureAwait(false);
await WaitForTaskAsync(_keepAlivePacketsSenderTask, sender).ConfigureAwait(false);
var receiverTask = WaitForTaskAsync(_packetReceiverTask, sender);
var keepAliveTask = WaitForTaskAsync(_keepAlivePacketsSenderTask, sender);
await Task.WhenAll(receiverTask, keepAliveTask).ConfigureAwait(false);

_logger.Verbose("Disconnected from adapter.");
}


Зареждане…
Отказ
Запис