Sto aggiungendo dispositivi remoti a un elenco mentre si annunciano attraverso la rete. Voglio solo aggiungere il dispositivo all'elenco se non è stato aggiunto in precedenza.
Gli annunci stanno arrivando attraverso un listener di socket asincrono, quindi il codice per aggiungere un dispositivo può essere eseguito su più thread. Non sono sicuro di cosa sto facendo di sbagliato, ma non importa cosa provo, finisco con le duplicazioni. Ecco cosa ho attualmente .....
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);
}
}
RemoteDevice?