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

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

Вопрос

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

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

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


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

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

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

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

 

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

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

os.sleep(0);

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

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


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

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

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

 

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

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


os.sleep(0);

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

Это ComputerCraft

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


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

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

 

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

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

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

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

 

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

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


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

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

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

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

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

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

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

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

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


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