네트워크를 통해 자신을 알리는 원격 장치를 목록에 추가하고 있습니다. 이전에 추가하지 않은 장치 만 목록에 추가하고 싶습니다.
알림은 비동기 소켓 리스너를 통해 전달되므로 장치를 추가하는 코드를 여러 스레드에서 실행할 수 있습니다. 나는 내가 뭘 잘못하고 있는지 확실하지 않지만 내가 시도하는 것과 상관없이 중복으로 끝납니다. 여기 내가 현재 가지고있는 것 .....
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?