J'ajoute des appareils distants à une liste lorsqu'ils s'annoncent sur le réseau. Je ne veux ajouter le périphérique à la liste que s'il n'a pas été ajouté précédemment.
Les annonces sont transmises par un écouteur de socket asynchrone, de sorte que le code d'ajout d'un périphérique peut être exécuté sur plusieurs threads. Je ne suis pas sûr de ce que je fais mal, mais peu importe ce que j'essaie, je me retrouve avec des doublons. Voici ce que j'ai actuellement : .....
lock (_remoteDevicesLock)
{
RemoteDevice rDevice = (from d in _remoteDevices
where d.UUID.Trim().Equals(notifyMessage.UUID.Trim(), StringComparison.OrdinalIgnoreCase)
select d).FirstOrDefault();
if (rDevice != null)
{
//Update Device.....
}
else
{
//Create A New Remote Device
rDevice = new RemoteDevice(notifyMessage.UUID);
_remoteDevices.Add(rDevice);
}
}