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

Не ясность в простейшей программе (Too long without yielding).

Вопрос

При запуске цикл работает нормально 8 секунд потом сбрасывается с ошибкой:   test:3 Too long without yielding . Необходимо сделать данный цикл бесконечным.u6a7x3PM2Wk.thumb.jpg.5e1ab0d5c8d4b8a0d716159792263286.jpg

Надеюсь на вашу помощь.

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


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

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

  • 0

Программы на OpenComputers должны иногда переключаться на всякие свои внутренние задачи.

Но пока твоя программа единовластно занимает поток выполнения - это невозможно. Отсюда ошибка "Too long without yielding" - то есть "Слишком долго без передачи управления".

 

Чтобы позволить системе компьютера заниматься своими делами, необходимо добавить либо event.pull, либо os.sleep.

Причем достаточно слипа на 0 секунд:

os.sleep(0);

Добавь это в любое место цикла - и проблема решится.

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


Ссылка на сообщение
Поделиться на других сайтах
  • 0
29 минут назад, Totoro сказал:

Программы на OpenComputers должны иногда переключаться на всякие свои внутренние задачи.

Но пока твоя программа единовластно занимает поток выполнения - это невозможно. Отсюда ошибка "Too long without yielding" - то есть "Слишком долго без передачи управления".

 

Чтобы позволить системе компьютера заниматься своими делами, необходимо добавить либо event.pull, либо os.sleep.

Причем достаточно слипа на 0 секунд:


os.sleep(0);

Добавь это в любое место цикла - и проблема решится.

Это ComputerCraft

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


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

В случае ComputerCraft причины примерно те же.

 

Можно тоже попробовать поиграть с os.sleep() с разной продолжительностью (ноль уже не поможет).

Можно попробовать использовать хак типа такого:

os.queueEvent("fakeEvent");
os.pullEvent();

Тоже внутри цикла.

 

Про ComputerCraft я знаю меньше, руководствуюсь гуглом, так что тут надо экспериментировать.

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


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

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

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

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

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

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

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

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

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


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