リモートデバイスがネットワークを介してアナウンスするときに、リストに追加します。以前にデバイスが追加されていない場合にのみ、デバイスをリストに追加したいと思います。
アナウンスは非同期ソケットリスナーを介して行われるため、デバイスを追加するコードを複数のスレッドで実行できます。何が間違っているのかわかりませんが、何をしようとしても重複してしまいます。これが私が現在持っているものです.....
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何ですか?