Создание Задержки в Луа - PullRequest
1 голос
/ 17 июня 2010

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

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

Я искал способ отложить цикл чтения ввода-вывода.

Я установил время для чтения на 0, и это сработало.

1 Ответ

2 голосов
/ 17 июня 2010

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

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

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

...