ReaderWriterLock
if (!this._rwl.IsWriterLockHeld)
{
this._rwl.AcquireWriterLock(-1);
}
加锁
public List<AplNodeDevice> DisConnect(string connectionid)
{
try
{
if (!this._rwl.IsWriterLockHeld) this._rwl.AcquireWriterLock(-1);
var devices = this._allDevices.FindAll(r => r.ConnectionId == connectionid);
foreach (var device in devices)
{
device.State = EnumAplNodeState.Offline;
device.CloseTime = DateTime.Now;
// this._monitorHubContext?.Clients.All.RefreshDeviceState(device);
}
return devices;
}
finally
{
if (this._rwl.IsWriterLockHeld) this._rwl.ReleaseWriterLock();
}
}