Создание Задержки lua

Я делаю клиент IRC, использующий LUA. Я пользуюсь библиотеками, которые шли "с Lua для Windows". Таким образом, я использую luasocket для comms и IUP для битов UI.

Проблема, которую я имею, состоит в том, что я застреваю в цикле, когда я считал IO. Я попробовал таймер в IUP, но это, казалось, не работало.

Я, искал способ задержать цикл чтения IO.

Я изложил время в чтения к 0, и это работало.

1
задан icefenix 17 June 2010 в 15:54
поделиться

1 ответ

Вероятно, вы выполняете блокирующее чтение сокета TCP внутри потока графического интерфейса. Это заблокирует все ваше приложение, если вы не получите ожидаемые данные своевременно. Выполните ввод-вывод сокета в отдельном потоке (см. Lua Lanes ) или используйте неблокирующий ввод-вывод (см. settimeout ).

Kepler Project - отличный ресурс для руководства по сетевым приложениям с Lua, но он ориентирован на веб-приложения, а не на IRC-клиент. Например, библиотека Copas использует сопрограммы Lua для обработки нескольких TCP-соединений.

Теперь, если вы действительно хотите узнать, как создать задержку в Lua, тогда статья Sleep Function в вики lua-users должна предоставить всю необходимую информацию.

2
ответ дан 2 September 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: