Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Запуск одновременно двух разных сценариев
Запуск одновременно двух разных сценариев
LectorДата: Пт, 06 Ноября 2009, 20:44 | Сообщение # 1
Ветеран форума
Ребята, помогите!!!
Как запустить одновременно два разных сценария? В каждом из сценарием выполняется оператор Loop...

Например, если сделать так:

Code
GoSub "Сценарий 1"
GoSub "Сценарий 2"

то, естественно, сперва будет выполнен сценарий 1, а после - сценарий 2 :(
Цикл в одном сценарии блокирует выполнение цикла во втором сценарии. Может что-то можно сделать?
 
СообщениеРебята, помогите!!!
Как запустить одновременно два разных сценария? В каждом из сценарием выполняется оператор Loop...

Например, если сделать так:

Code
GoSub "Сценарий 1"
GoSub "Сценарий 2"

то, естественно, сперва будет выполнен сценарий 1, а после - сценарий 2 :(
Цикл в одном сценарии блокирует выполнение цикла во втором сценарии. Может что-то можно сделать?

Автор - Lector
Дата добавления - 06 Ноября 2009 в 20:44
СергейДата: Сб, 07 Ноября 2009, 11:24 | Сообщение # 2
Необукер
Quote (Lector)
Может что-то можно сделать?
попробуй с помощью таймера, у меня нет возможности проверить этот вариант, может и получится. Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта, может гуру что скажут....
 
Сообщение
Quote (Lector)
Может что-то можно сделать?
попробуй с помощью таймера, у меня нет возможности проверить этот вариант, может и получится. Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта, может гуру что скажут....

Автор - Сергей
Дата добавления - 07 Ноября 2009 в 11:24
Alex3AДата: Сб, 07 Ноября 2009, 12:19 | Сообщение # 3
Друг клуба ММВ
Истинной многозадачности нет даже в винде :D
Все равно, на каждую задачу свой квант времени.
В ммв есть некое подобие - полупаралельный процесс, но это тоже не то.
В нб я такого не слыхал. Но некую эмуляцию все же можно организовать :D
Разбить сценарии на некие кусочки, завести счетчики кусочков, организовать
периодический вызов сценариев. К примеру, "Сценарий 1" имеет 20 кусочков,
"Сценарий 2" -30 , выполняем в цикле обращения к обоими сценариям 30 раз,
при каждом обращении к сценариям их счетчики увеличиваются на 1, и соответсвенно,
выполняется следующая порция кода, при счетчике в первом сценарии >20 идет просто
возврат. Пусть вас не особо смущают корявости сравнений и переходов, в действительности они транслируются в несколько ассемблерных команд и занимают несравнимо меньшее время, чем остальные команды.
А вот уж для разбиения на порции, вы должны приложить ваш ум, добившись что бы оно
приносило нужный вам эфект, и должны понимать сколько время будет занимать та или
иная порция.
 
СообщениеИстинной многозадачности нет даже в винде :D
Все равно, на каждую задачу свой квант времени.
В ммв есть некое подобие - полупаралельный процесс, но это тоже не то.
В нб я такого не слыхал. Но некую эмуляцию все же можно организовать :D
Разбить сценарии на некие кусочки, завести счетчики кусочков, организовать
периодический вызов сценариев. К примеру, "Сценарий 1" имеет 20 кусочков,
"Сценарий 2" -30 , выполняем в цикле обращения к обоими сценариям 30 раз,
при каждом обращении к сценариям их счетчики увеличиваются на 1, и соответсвенно,
выполняется следующая порция кода, при счетчике в первом сценарии >20 идет просто
возврат. Пусть вас не особо смущают корявости сравнений и переходов, в действительности они транслируются в несколько ассемблерных команд и занимают несравнимо меньшее время, чем остальные команды.
А вот уж для разбиения на порции, вы должны приложить ваш ум, добившись что бы оно
приносило нужный вам эфект, и должны понимать сколько время будет занимать та или
иная порция.

Автор - Alex3A
Дата добавления - 07 Ноября 2009 в 12:19
BodiДата: Сб, 07 Ноября 2009, 13:05 | Сообщение # 4
Ветеран форума
Quote (sp3d)
попробуй с помощью таймера, у меня нет возможности проверить этот вариант, может и получится. Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта

Вот, попробовал, вроде работает....
Прикрепления: timer.rar (1.7 Kb)
 
Сообщение
Quote (sp3d)
попробуй с помощью таймера, у меня нет возможности проверить этот вариант, может и получится. Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта

Вот, попробовал, вроде работает....

Автор - Bodi
Дата добавления - 07 Ноября 2009 в 13:05
LectorДата: Сб, 07 Ноября 2009, 13:57 | Сообщение # 5
Ветеран форума
Quote (Bodi)
Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта, может гуру что скажут...

Одновременно исполнять два скрипта в NB можно - это факт. Даже если в одном из двух сценарием присутствует цикл, то они будут исполняться одновременно (прикрепление Timer 1loop). Но если цикл присутствует в обоих сценариях, то получается фигня (прикрепление Timer 2loop).
Прикрепления: timer1loop.rar (1.9 Kb) · timer2loop.rar (1.9 Kb)


Сообщение отредактировано
Lector - Сб, 07 Ноября 2009, 14:10
 
Сообщение
Quote (Bodi)
Но надо знать навярнека, может ли НБ вообще исполнять одновременно два скрипта, может гуру что скажут...

Одновременно исполнять два скрипта в NB можно - это факт. Даже если в одном из двух сценарием присутствует цикл, то они будут исполняться одновременно (прикрепление Timer 1loop). Но если цикл присутствует в обоих сценариях, то получается фигня (прикрепление Timer 2loop).

Автор - Lector
Дата добавления - 07 Ноября 2009 в 13:57
BodiДата: Сб, 07 Ноября 2009, 14:33 | Сообщение # 6
Ветеран форума
Quote (Lector)
Но если цикл присутствует в обоих сценариях, то получается фигня

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

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

 
Сообщение
Quote (Lector)
Но если цикл присутствует в обоих сценариях, то получается фигня

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

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


Автор - Bodi
Дата добавления - 07 Ноября 2009 в 14:33
Alex3AДата: Сб, 07 Ноября 2009, 15:38 | Сообщение # 7
Друг клуба ММВ
Quote (Lector)
Одновременно исполнять два скрипта в NB можно - это факт

Это не есть факт!
Смотря как на это посмотреть, под одновременностью, я подразумеваю паралельный поток
вычислений (нить-thread). В случае таймера мы имеем обработку события, большинство
современных языков событийноориентированые, где новая ветка вычислений начинается
с получения сообщения виндовс. В виндовс имеется очередь сообщений, из которой
они выбираются и обрабатываются, при этом винда может игнорировать некоторые, по своему усмотрению, когда считает их утратившими актуальность.
Далее, даже при кажущейся линейности вычислений, не всегда операторы выполняются
друг за другом, следующий оператор может быть выполнен до окончания выполнения первого. Ни ммв ни нб с нитями не работают,полупаралельный процесс в ммв есть ни что иное как организация нового события, подобно таймеру. Если бы механизм нитей был доступен, то "одновременно" могли бы работать и всякия цыклы. А цикл есть елемент
вычисления в пределах обработки события, таким образом, пока обработка текущего события не завершится, новое не начнется. Многие вещи невозможны без организации
нового события.
 
Сообщение
Quote (Lector)
Одновременно исполнять два скрипта в NB можно - это факт

Это не есть факт!
Смотря как на это посмотреть, под одновременностью, я подразумеваю паралельный поток
вычислений (нить-thread). В случае таймера мы имеем обработку события, большинство
современных языков событийноориентированые, где новая ветка вычислений начинается
с получения сообщения виндовс. В виндовс имеется очередь сообщений, из которой
они выбираются и обрабатываются, при этом винда может игнорировать некоторые, по своему усмотрению, когда считает их утратившими актуальность.
Далее, даже при кажущейся линейности вычислений, не всегда операторы выполняются
друг за другом, следующий оператор может быть выполнен до окончания выполнения первого. Ни ммв ни нб с нитями не работают,полупаралельный процесс в ммв есть ни что иное как организация нового события, подобно таймеру. Если бы механизм нитей был доступен, то "одновременно" могли бы работать и всякия цыклы. А цикл есть елемент
вычисления в пределах обработки события, таким образом, пока обработка текущего события не завершится, новое не начнется. Многие вещи невозможны без организации
нового события.

Автор - Alex3A
Дата добавления - 07 Ноября 2009 в 15:38
LectorДата: Сб, 07 Ноября 2009, 16:52 | Сообщение # 8
Ветеран форума
Спасибо за полезную информацию!
Будим искать решение этой нелегкой задачи...
 
СообщениеСпасибо за полезную информацию!
Будим искать решение этой нелегкой задачи...

Автор - Lector
Дата добавления - 07 Ноября 2009 в 16:52
PeterДата: Вс, 08 Ноября 2009, 00:02 | Сообщение # 9
Админ NeoBook
Граждане!
Я сейчас полностью (на 24 часа в сутки) отлучен от компов, но все это временно... Сорри..
Quote (Lector)
Как запустить одновременно два разных сценария?

Никак!
Т.к. совершенно верно заметил Алекс:
Quote (Alex3A)
Истинной многозадачности нет даже в винде
Все равно, на каждую задачу свой квант времени

Но...
Quote (Lector)
В каждом из сценарием выполняется оператор Loop...

А зачем в каждом?
Достаточно одного Loop!
Последовтельно прописываются оба сценария, но для одно из них (который "короче") допонительно пропысывается собственное условие "останова" и "счетчик".


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеГраждане!
Я сейчас полностью (на 24 часа в сутки) отлучен от компов, но все это временно... Сорри..
Quote (Lector)
Как запустить одновременно два разных сценария?

Никак!
Т.к. совершенно верно заметил Алекс:
Quote (Alex3A)
Истинной многозадачности нет даже в винде
Все равно, на каждую задачу свой квант времени

Но...
Quote (Lector)
В каждом из сценарием выполняется оператор Loop...

А зачем в каждом?
Достаточно одного Loop!
Последовтельно прописываются оба сценария, но для одно из них (который "короче") допонительно пропысывается собственное условие "останова" и "счетчик".

Автор - Peter
Дата добавления - 08 Ноября 2009 в 00:02
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Запуск одновременно двух разных сценариев
  • Страница 1 из 1
  • 1
Поиск: