|
|
@@ -11,6 +11,8 @@ namespace ET
|
|
|
|
|
|
private SortedSet<long> updateIds = new();
|
|
|
|
|
|
+ private Dictionary<long, LSEntityRef<LSEntity>> lsEntities = new();
|
|
|
+
|
|
|
private Queue<long> addUpdateIds = new();
|
|
|
|
|
|
private Queue<long> removeUpdateIds = new();
|
|
|
@@ -24,7 +26,7 @@ namespace ET
|
|
|
|
|
|
foreach (long id in this.updateIds)
|
|
|
{
|
|
|
- LSEntity entity = this.Parent.Get(id);
|
|
|
+ LSEntity entity = lsEntities[id];
|
|
|
if (entity == null)
|
|
|
{
|
|
|
this.removeUpdateIds.Enqueue(id);
|
|
|
@@ -36,13 +38,16 @@ namespace ET
|
|
|
|
|
|
while (this.removeUpdateIds.Count > 0)
|
|
|
{
|
|
|
- this.updateIds.Remove(this.removeUpdateIds.Dequeue());
|
|
|
+ long id = this.removeUpdateIds.Dequeue();
|
|
|
+ this.updateIds.Remove(id);
|
|
|
+ this.lsEntities.Remove(id);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public void Add(LSEntity entity)
|
|
|
{
|
|
|
this.addUpdateIds.Enqueue(entity.Id);
|
|
|
+ this.lsEntities.Add(entity.Id, entity);
|
|
|
}
|
|
|
}
|
|
|
}
|