mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-07 16:45:10 +00:00
RemoveAllListenerByOwner 倒序移除
This commit is contained in:
@@ -96,15 +96,13 @@ namespace TEngine
|
||||
{
|
||||
if (_allEventListenerMap.TryGetValue(eventId, out var listListener))
|
||||
{
|
||||
for (int i = 0; i < listListener.Count; i++)
|
||||
for (int i = listListener.Count - 1; i >= 0 ; i--)
|
||||
{
|
||||
if (listListener[i].IsDeleted)
|
||||
{
|
||||
Log.Info("remove delay delete eventId[{0}]", eventId);
|
||||
listListener[i] = listListener[^1];
|
||||
EventRegInfo.Release(listListener[^1]);
|
||||
listListener.RemoveAt(listListener.Count - 1);
|
||||
i--;
|
||||
EventRegInfo.Release(listListener[i]);
|
||||
listListener.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -462,7 +460,7 @@ namespace TEngine
|
||||
bool isProcessing = _processEventList.Contains(eventId);
|
||||
bool delayDeleted = false;
|
||||
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
for (int i = list.Count - 1; i >= 0 ; i--)
|
||||
{
|
||||
var regInfo = list[i];
|
||||
if (regInfo.Owner == owner)
|
||||
@@ -474,10 +472,8 @@ namespace TEngine
|
||||
}
|
||||
else
|
||||
{
|
||||
list[i] = list[^1];
|
||||
EventRegInfo.Release(list[^1]);
|
||||
list.RemoveAt(list.Count - 1);
|
||||
i--;
|
||||
EventRegInfo.Release(list[i]);
|
||||
list.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user