Перейти к содержимому
  • 0
rootmaster

чтения всех event в фоновой режиме

Вопрос

как спомошью слушателя прочитать все event а не только определенные

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Попробуй

event.register(nill, callback, math.huge, math.huge)

По идее, первым параметром должно идти имя события, но если поставить nill ловиться будут все события. Callback - функция-слушатель.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

все event получаю так

local event = require("event")

while true do
  local e = {event.pull()}
  print()
  for i = 1,#e do
    print(i,e[i])
  end
end

на счет работы в фоне это нужно уточнить

Изменено пользователем serafim

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Zer0Galaxy сказал:

Попробуй


event.register(nill, callback, math.huge, math.huge)

По идее, первым параметром должно идти имя события, но если поставить nill ловиться будут все события. Callback - функция-слушатель.

 

почему register а не listen и зачем math.huge да так та я уже поток прикрутил(в моем патче openOS они работают нормально и не ловят interrupt)

Изменено пользователем rootmaster

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, rootmaster сказал:

почему register а не listen и зачем math.huge

register это тот же listen, но с меньшим количеством проверок. Поэтому он позволяет вводить nill вместо имени события. А третий и четвертый параметры это интервал и количество срабатываний слушателя. Если мы хотим что бы слушатель работал вечно, туда нужно поставить math.huge.

Цитата

та я уже поток прикрутил

ну вопрос же был: как читать ивенты при помощи слушателя.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот, если интересно:

function event.listen(name, callback)
  checkArg(1, name, "string")
  checkArg(2, callback, "function")
  for _, handler in pairs(handlers) do
    if handler.key == name and handler.callback == callback then
      return false
    end
  end
  return event.register(name, callback, math.huge, math.huge)
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...