2016-07-01 5 views
1

を反復これは、追加の形式である:効率的に格納し、Luaのマルチレベル・キュー

AddToQueue(String identifier, function callfunc, int priority) 

優先度は0が最高の優先度であると、0〜4であることが保証されます。

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つのテーブルに保存して並べ替えることができます。

関連する問題