diff --git a/M2Mqtt/MqttClient.cs b/M2Mqtt/MqttClient.cs index 3345aa50..806b2846 100644 --- a/M2Mqtt/MqttClient.cs +++ b/M2Mqtt/MqttClient.cs @@ -21,6 +21,7 @@ Paolo Patierno - initial API and implementation and/or initial documentation using System.Security.Cryptography.X509Certificates; #endif using System.Threading; +using System.Threading.Tasks; using uPLibrary.Networking.M2Mqtt.Exceptions; using uPLibrary.Networking.M2Mqtt.Messages; using uPLibrary.Networking.M2Mqtt.Session; @@ -885,7 +886,7 @@ private void OnConnectionClosing() } } - /// <summary> + /// <summary> /// Wrapper method for raising PUBLISH message received event /// </summary> /// <param name="publish">PUBLISH message received</param> @@ -893,8 +894,9 @@ private void OnMqttMsgPublishReceived(MqttMsgPublish publish) { if (this.MqttMsgPublishReceived != null) { - this.MqttMsgPublishReceived(this, - new MqttMsgPublishEventArgs(publish.Topic, publish.Message, publish.DupFlag, publish.QosLevel, publish.Retain)); + Task.Run(() => this.MqttMsgPublishReceived(this, + new MqttMsgPublishEventArgs(publish.Topic, publish.Message, publish.DupFlag, publish.QosLevel, publish.Retain))); + } }