这是添加格式:
AddToQueue( String identifier, function callfunc, int priority )
优先级保证为0到4,0为最高优先级。我目前的设置是:
local tQueue = {
[0] = {},
[1] = {},
[2] = {},
[3] = {},
[4] = {}
}
function AddToQueue( sName, funcCallback, iPriority )
queue[iPriority or 0][sName] = funcCallback
end
function CallQueue()
for i = 0, 4 do
for _, func in pairs( queue[i] ) do
local retval = func()
if ( retval ~= nil ) then
return retval
end
end
end
end
这有效,但我想知道是否有更好的方法来存储和迭代这些函数,以防止每次调用都进行5对循环。谢谢!
答案 0 :(得分:1)
如果频繁迭代你的队列,并且新的回调添加很少,那么你可以将所有内容存储在单个表中,每次添加新的回调时对其进行排序。