高效地存储和迭代Lua多级队列

这是添加格式:

AddToQueue( 字符串 标识符, 函数 调用函数, 整数 优先级 )

优先级保证为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次配对循环。谢谢!

点赞
用户5675002
用户5675002

如果您经常迭代队列,并且添加新的回调很少,那么您可以将所有内容存储在单个表中,在每次添加新的回调时对其进行排序。

2016-07-01 07:05:52