Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Ребята, помогите!!! Как запустить одновременно два разных сценария? В каждом из сценарием выполняется оператор Loop...
Например, если сделать так:
Code
GoSub "Сценарий 1" GoSub "Сценарий 2"
то, естественно, сперва будет выполнен сценарий 1, а после - сценарий 2 Цикл в одном сценарии блокирует выполнение цикла во втором сценарии. Может что-то можно сделать?
попробуй с помощью таймера, у меня нет возможности проверить этот вариант, может и получится. Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта, может гуру что скажут....
Истинной многозадачности нет даже в винде Все равно, на каждую задачу свой квант времени. В ммв есть некое подобие - полупаралельный процесс, но это тоже не то. В нб я такого не слыхал. Но некую эмуляцию все же можно организовать Разбить сценарии на некие кусочки, завести счетчики кусочков, организовать периодический вызов сценариев. К примеру, "Сценарий 1" имеет 20 кусочков, "Сценарий 2" -30 , выполняем в цикле обращения к обоими сценариям 30 раз, при каждом обращении к сценариям их счетчики увеличиваются на 1, и соответсвенно, выполняется следующая порция кода, при счетчике в первом сценарии >20 идет просто возврат. Пусть вас не особо смущают корявости сравнений и переходов, в действительности они транслируются в несколько ассемблерных команд и занимают несравнимо меньшее время, чем остальные команды. А вот уж для разбиения на порции, вы должны приложить ваш ум, добившись что бы оно приносило нужный вам эфект, и должны понимать сколько время будет занимать та или иная порция.
попробуй с помощью таймера, у меня нет возможности проверить этот вариант, может и получится. Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта
Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта, может гуру что скажут...
Одновременно исполнять два скрипта в NB можно - это факт. Даже если в одном из двух сценарием присутствует цикл, то они будут исполняться одновременно (прикрепление Timer 1loop). Но если цикл присутствует в обоих сценариях, то получается фигня (прикрепление Timer 2loop).
Но если цикл присутствует в обоих сценариях, то получается фигня
Все верно. Ведь цикл он и есть цикл, т.е. он выполняется определенное кол-во раз, но в тоже время и таймер выполняет свой сценарий несколько раз, в итоге получается что таймер каждую секунду запускает новый цикл, и так до бесконечности.....
Можно попробовать не использовать циклы, а просто использовать средства таймера, но тут проблемы со временем таймера. Ведь цикл запускается сначала только когда дойдет до конца, а таймер через определенный промежуток времени.
Одновременно исполнять два скрипта в NB можно - это факт
Это не есть факт! Смотря как на это посмотреть, под одновременностью, я подразумеваю паралельный поток вычислений (нить-thread). В случае таймера мы имеем обработку события, большинство современных языков событийноориентированые, где новая ветка вычислений начинается с получения сообщения виндовс. В виндовс имеется очередь сообщений, из которой они выбираются и обрабатываются, при этом винда может игнорировать некоторые, по своему усмотрению, когда считает их утратившими актуальность. Далее, даже при кажущейся линейности вычислений, не всегда операторы выполняются друг за другом, следующий оператор может быть выполнен до окончания выполнения первого. Ни ммв ни нб с нитями не работают,полупаралельный процесс в ммв есть ни что иное как организация нового события, подобно таймеру. Если бы механизм нитей был доступен, то "одновременно" могли бы работать и всякия цыклы. А цикл есть елемент вычисления в пределах обработки события, таким образом, пока обработка текущего события не завершится, новое не начнется. Многие вещи невозможны без организации нового события.
Граждане! Я сейчас полностью (на 24 часа в сутки) отлучен от компов, но все это временно... Сорри..
Quote (Lector)
Как запустить одновременно два разных сценария?
Никак! Т.к. совершенно верно заметил Алекс:
Quote (Alex3A)
Истинной многозадачности нет даже в винде Все равно, на каждую задачу свой квант времени
Но...
Quote (Lector)
В каждом из сценарием выполняется оператор Loop...
А зачем в каждом? Достаточно одного Loop! Последовтельно прописываются оба сценария, но для одно из них (который "короче") допонительно пропысывается собственное условие "останова" и "счетчик". - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться