Перейти к содержанию
#2218
Dyrman
Есть ли скрипт, который определяет, выполняется ли данная функция или уже нет? (без использования флага в самой функции)
Например, есть:

for i=1,100 do
startThread(Func);
end
Получается так, что могут запуститься несколько функций Func, даже не смотря на то, что могла бы не завершиться предыдущая.

local threads = {}

local startExec = function(func)
local threads = threads
errorHook(function()
%threads[%func] = nil
end)
threads[func] = 1
func()
threads[func] = nil
end

function startThreadOnce(func)
if not %threads[func] then
startThread(%startExec, func)
end
end

function isFunctionRunning(func)
return %threads[func]
end
В данном примере startThreadOnce запускает функцию только если она не запущена в данный момент. isFunctionRunning проверяет запущена ли функция в данный момент.

Статистика

Приветствуем новейшего участника: Emil

Сейчас на сайте 6 пользователей 1057 гостей