Lua可以“超时”吗?

问题描述 投票:0回答:3

假设我正在运行一个脚本,游戏客户端在更新之前等待脚本完成。 Lua 可以做一些“超时”的事情吗?就像,我可以设置更新的优先级,以便它让脚本进行更新,然后在单词之后它可以返回到脚本中的位置吗?

lua
3个回答
1
投票

您还可以设置一个 count 挂钩,并为挂钩中脚本的超时和中止执行设置合适的计数。


0
投票

Lua 使用协作多线程,因此脚本必须知道将控制权传递回调用者之前需要多长时间。使用 os.time 并获得差异,不难算出它运行了多长时间。在某些情况下,这可能会更困难,但如果脚本是循环,则应该不难。一旦你发现你运行了太长时间,就执行 coroutine.yield() ,当你想恢复脚本时,只需从更新循环中调用 lua_resume 即可。


0
投票

您可以在另一个线程中运行整个 lua_State 和 lua 脚本。当 Lua 脚本访问您实现的需要修改主线程中的内容的函数时,请使用互斥体和其他内容来使该访问成为线程安全的。

这样,您可以轻松地让您的 Lua 脚本挂起或执行任何操作,同时您的主线程可以继续正常运行,但是,它还要求您使所有实现的函数访问主线程可能正常处理的任何内容(例如图形) )具有线程意识。

© www.soinside.com 2019 - 2024. All rights reserved.