KelLiN 49 Опубликовано: 12 апреля, 2015 Часто вижу в коде именно event.pull причем без указания первого аргумента таймаута. В итоге предполагаю опрос на событие каждый тик (или не так ?). Почему никто не использует event.listen ? Не понимание как работает система событий ? Или в listen не передаются какие-либо необходимые события ? Я в jabber боте лет 8 назад только на аналогах event.listen и программировал, после чего ни одна моя программа не обходилась без стандартного куска кода для работы с событиями. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 12 апреля, 2015 Pull() — если нужно ожидать. Т. е. пока нет ивента, программа стопится. Listen() — бэкграунд. Работает на фоне, в любой момент. Первое понятнее новичкам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KelLiN Автор темы 49 Опубликовано: 12 апреля, 2015 pull() без аргумента таймаут разве стопится ? Или по умолчанию таймаут бесконечность ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 12 апреля, 2015 В pull() таймаут есть, кажется, 5 минут. Во время этого прога стопится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KelLiN Автор темы 49 Опубликовано: 12 апреля, 2015 Пытался покопаться в потрохах ОС. Что-то ничего путного не нашел как устроен listen. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Programist135 231 Опубликовано: 20 мая, 2015 У меня почему-то не работает event.listen: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 20 мая, 2015 Не нужно вызывать. Нужна функция. event.listen("event", cbFunc) вместо event.listen("event", cbFunc()) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Programist135 231 Опубликовано: 20 мая, 2015 Не нужно вызывать. Нужна функция. event.listen("event", cbFunc) вместо event.listen("event", cbFunc()) Вот код программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 20 мая, 2015 event.listen() вызывает ФУНКЦИЮ при отлавливании определённого события. Так как ты не будешь запускать функцию, тогда пиши event.pull("event") Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Programist135 231 Опубликовано: 20 мая, 2015 event.listen() вызывает ФУНКЦИЮ при отлавливании определённого события. Так как ты не будешь запускать функцию, тогда пиши event.pull("event") Тогда надо сначала ЖДАТЬ СООБЩЕНИЕ, потом уже писать. Что если ты не дописал сообщение? Мне нужно ИМЕННО Listen. Чтобы в любой момент писать и одновременно получать. Вот так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
KelLiN Автор темы 49 Опубликовано: 20 мая, 2015 (изменено) Не был бы ты ленивый, поправил бы твой код. А со скриншота перепечатывать - я сам ленивый.Что-то вроде:function printMessage(_,_,msg_,_) print(msg)endevent.listen("bitnet_message",printMessage)while true do io.read blablaendТвой текущий код с pull будет самоблокирующимся. Не сможешь отправить смс пока не примешь любой пакет. Изменено 20 мая, 2015 пользователем KelLiN Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Programist135 231 Опубликовано: 21 мая, 2015 KeILiN, спасибо огромное Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах