【问题标题】:Creating a Delay in lua在 lua 中创建延迟
【发布时间】:2011-03-04 20:42:26
【问题描述】:

我正在使用 LUA 制作 IRC 客户端。我正在使用“Lua for Windows”附带的库。所以我用 luasocket 做通讯,用 IUP 做 UI 位。

我遇到的问题是我在读取 IO 时陷入了循环。我尝试了 IUP 中的计时器,但似乎不起作用。

我正在寻找一种方法来延迟 IO 读取循环。

我将读取的超时时间设置为 0 并且有效。

【问题讨论】:

    标签: sockets loops lua io


    【解决方案1】:

    您可能正在 GUI 线程内的 TCP 套接字上进行阻塞读取。如果您没有及时收到预期的数据,这将锁定您的整个应用程序。在单独的线程中执行套接字 I/O(参见 Lua Lanes)或使用非阻塞 I/O(参见 settimeout)。

    Kepler Project 是一个很好的资源,用于指导使用 Lua 进行网络应用程序,但它侧重于 Web 应用程序而不是 IRC 客户端。例如,Copas 库使用Lua coroutines 来处理多个 TCP 连接。

    现在,如果您真的只是想知道如何在 Lua 中创建延迟,那么 lua-users wiki 中的 Sleep Function 文章应该会提供您需要的所有信息。

    【讨论】:

    • 感谢放弃阅读帮助。所以没有必要拖延。
    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2011-07-06
    • 2015-02-15
    • 2021-04-02
    相关资源
    最近更新 更多