Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#2193
Старый 13.04.2016, 15:40
  #2193
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

RedHeavenHero
	
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 проверяет запущена ли функция в данный момент.
Спасибо. Если функция выдаст ошибку, то она перейдёт в статус завершённой?
Dyrman вне форума
Ответить с цитированием