我有一个客户端,该客户端的设备应用偶尔会挂断,而他们却无法弄清原因。设备应用程序是使用.NET Azure SDK的长期运行的Windows服务。我检查了代码库,发现它们有两个单独的线程,每个线程运行一个循环,一个线程发送D2C消息,另一个接收C2D消息,都使用相同的DeviceClient实例。听起来对我来说是潜在的比赛条件。这让我想知道.NET DeviceClient类是否是线程安全的。还有其他人碰到这个吗?
此old (2016) post提到DeviceClient不是线程安全的,但是current DeviceClient documentation没有提及线程安全。
FWIW,他们有4000多个设备,每周总计发送大约25MM消息,并且正在使用MQTT。 谢谢!