簡體   English   中英

如何在Lua中使用計時器

[英]how to use a timer in Lua

我使用tshark捕獲數據,並保存數據包頭中的某些數據以進行處理,以檢測網絡中的某些事件。 我將數據保存在lua程序的表中(該表使用tshark在cmd中使用命令(-Xlua_script :)運行),現在我想在捕獲運行時單獨處理每分鍾的數據。 這是一個在線處理。 首先:任何人都知道這是否可以實現?其次,我需要一個計時器,我不知道該怎么做,我想要一種方法,可以將表中的數據用於處理它們,重置表以獲取下一分鍾的新數據而不會丟失任何數據。 有任何建議或想法嗎?

lua中沒有像其他語言那樣使用“計時器”的概念,您可以在其中創建一個並設置事件處理程序,並在計時器關閉時通知主程序...但是您可以定期檢查os。 clock()來確定自從您做了一些處理以來已經有多長時間了,如果一分鍾過去了,請繼續處理數據。

這樣的事情可能是您需要的:

lastTimeProcessed = os.clock()

function IsTimeToProcess(currentTime)
    span = currentTime - lastTimeProcessed
    if span >= 60 then
        lastTimeProcessed = currentTime
        return true
    end

    return false
end

while true do
    if IsTimeToProcess(os.clock()) then
        -- process some data here
    end
    -- otherwise do another round of whatever you're doing
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM