Скажем, я запускаю скрипт, и игровой клиент ждет завершения скрипта до его обновления. Может ли Lua сделать что-то из «тайм-аута»? Как, могу ли я установить приоритет на обновить, чтобы он оставил скрипт для выполнения обновления, а затем после слов он мог вернуться к тому месту, где он был в скрипте?Может ли Lua «Timeout»?
ответ
Вы также можете установить крючок подсчета с подходящим счетом для таймаута и прекратить выполнение сценария в крючок.
Lua использует совместную многопоточность, поэтому скрипт должен знать, сколько времени прошло, прежде чем передать управление обратно вызывающему абоненту. Не трудно понять, как долго он запускается с использованием os.time и получает разницу В некоторых случаях это может быть более сложным t, но если скрипт представляет собой цикл, это не должно быть сложно. Как только вы выяснили, что вы запустили слишком долго, выполните команду coroutine.yield(), и когда вы хотите возобновить сценарий, просто вызовите lua_resume из цикла обновления.
Вы можете запустить весь скрипт lua_State и lua в другом потоке. Когда скрипт Lua обращается к функциям, которые вы реализовали, которые должны изменять вещи в основном потоке, используйте мьютексы и другие вещи, чтобы сделать этот поток потокобезопасным.
Таким образом, вы можете легко повесить ваш Lua-скрипт или что-то сделать, пока ваш основной поток может продолжать работать нормально, однако он также требует, чтобы все ваши реализованные функции обращались к чему-либо основному потоку, возможно, (например, графику) для потоковой передачи.
- 1. Может ли Lua использоваться для разработки приложений?
- 2. Lua: Может ли это вызвать segfault?
- 3. Может ли функция Lua вернуть несколько результатов?
- 4. Может ли Flask (Python) портироваться в Lua?
- 5. Может ли C++ упростить реализацию Lua VM?
- 6. Может ли сеанс Timeout и TimeAuthentication Timeout сделать этот эффект, как я его могу изменить?
- 7. Может ли угловой $ timeout использоваться в качестве надежного дома?
- 8. Есть ли предупреждение Lua вместо ошибки Lua?
- 9. Timeout не может отправляться через pika.Blocking connection
- 10. Lua не может найти модуль
- 11. Lua string.find не может соответствовать "/"
- 12. LdapConnection timeout vs SearchRequest timeout
- 13. Поддерживает ли Lua Unicode?
- 14. Может ли локальная функция заменить \ переопределить себя в Lua
- 15. Lua Может ли кто-нибудь объяснить, что это делает?
- 16. Является ли Lua языком, который не-разработчик может быстро узнать?
- 17. Может ли кто-нибудь сказать мне, как вызвать функцию lua?
- 18. Может ли пользовательский JavaScript на MediaWiki вызывать модуль Lua?
- 19. Может ли функция string.byte в Lua возвращать отрицательное значение?
- 20. Может ли оператор длины Lua возвращать отрицательный индекс?
- 21. Может ли Lua использоваться для разработки приложений самостоятельно?
- 22. Может ли Lua поддерживать нечувствительный к регистру метод?
- 23. Heroku Timeout :: timeout не выдает ошибку
- 24. JQuery timeout timeout часть 2
- 25. wait()/wait (timeout)/sleep (timeout)?
- 26. d3 timeout like angular $ .timeout
- 27. SessionState Timeout
- 28. Lua не может декодировать google Sheet JSON?
- 29. Lua - Что он может сделать точно?
- 30. Sidekiq Timeout
Я думаю, что вы лучше с многопоточным. Один поток для сценария Lua, другой для обновлений. –