diff --git a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs index a38bcc27..2b28deb9 100644 --- a/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs +++ b/Source/MQTTnet.Extensions.ManagedClient/ManagedMqttClient.cs @@ -226,7 +226,7 @@ namespace MQTTnet.Extensions.ManagedClient { try { - while (!cancellationToken.IsCancellationRequested) + while (!cancellationToken.IsCancellationRequested && _mqttClient.IsConnected) { var message = _messageQueue.Take(cancellationToken); if (message == null) @@ -367,7 +367,6 @@ namespace MQTTnet.Extensions.ManagedClient } var cts = new CancellationTokenSource(); - _publishingCancellationToken = cts; Task.Factory.StartNew(() => PublishQueuedMessages(cts.Token), cts.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);