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