|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
|
Как обеспечить синхронизацию двух событий, описанных в разных потоках методом execute()10.02.2014, 12:44. Показов 3550. Ответов 38
Метки нет (Все метки)
Добрый день! Подскажите пожалуйста, как обеспечить синхронизацию двух событий, описанных в разных потоках методом execute() ?
В первом- описан вывод цветов RGB на форму, во втором- вывод звука через миди. При включении двух этих потоков одновременно, получается рассинхронизация.
0
|
|
| 10.02.2014, 12:44 | |
|
Ответы с готовыми решениями:
38
Как обеспечить синхронизацию xchg для нескольких потоков? Не работают getch() и cin в двух разных потоках на ввод одновременно/Как снизить нагрузку на процессор? Движение двух фигур в разных потоках |
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||
| 13.02.2014, 11:39 | |||||||
0
|
|||||||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
||||||
| 13.02.2014, 11:55 [ТС] | ||||||
|
Да, увидел отличия, Вы говорите про циклы перед куском кода цвета и звука. А как их синхронизировать?В вашем коде можно добавить ту синхронизацию как вы использовали?
Добавлено через 12 минут Добавил циклы для цвета и звука вот так:
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 13.02.2014, 11:56 | |
|
Pir12345, тут возникает вопрос - нужно ли вам именно два потока на звук и на цвет? Объединить их в один это самый легкий путь.
Если же вам нужны оба этих потока, то нужно уже думать. Есть куча способов подобной синхронизации. Первое, что приходит в голову это в главном потоке (потоке формы) запустить требуемый цикл, переменную Data1 сделать членом формы (ну или глобальной), в цикле ее изменять, а из потоков получать ее значение. Таким образом, каждый поток будет работать с одними и теми же данными, с одной и той же цифрой. Или, к примеру, можно запустить цикл только в одном потоке. И выбрасывать какой-нибудь флаг завершения итерации. А вторым потоком постоянно мониторить первый и ожидать этот флаг.
0
|
|
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
|
| 13.02.2014, 12:01 [ТС] | |
|
Мне нужно просто чтобы одновременно воспроизводились цвет и звук(синхронно). Если их объединить в один поток- есть вероятность, что: 1)При выполнении цикла программа зависнет 2) не будет работать СТОП.
Собственно почему я и делил все модули на потоки. Если такого не будет, пожалуйста, пусть будет и цвет и звук в одном потоке.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||
| 13.02.2014, 12:05 | ||
|
И метод RecolorForm и так вызывается из-под синхронизации. Не надо, коли вы так сделали, внутри него опять же синхронизироваться с той же формой.
0
|
||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
||||||
| 13.02.2014, 12:08 [ТС] | ||||||
|
Да появился и в .cpp и в .h соответственно. Вот тот кусок кода:
По идее по этому методу GetSubstrAndPutToData они уже синхронизированы(ну логически)
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||||||||||||||
| 13.02.2014, 12:11 | ||||||||||||||||||
|
Вот такое соответствие?
Добавлено через 27 секунд И покажите реализацию.
0
|
||||||||||||||||||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
|||||||||||
| 13.02.2014, 14:12 [ТС] | |||||||||||
|
Да такое соответствие, если в labeledit1 введены числа 1234567, если введена другая комбинация- то в соответствии с ней(ну это уже не критично...это просто переменная вводится в labeledit1).
Вот реализация:
SatanaXIII, похоже понял. Убрал с Вашего кода вот это(сделал напрямую, как в звуке):
Разбираюсь с кодом и тестирую дальше!
0
|
|||||||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||
| 13.02.2014, 14:17 | ||||||
|
Может быть следующий мой вопрос покажется вам странным, но зачем вам вообще тут потоки?
0
|
||||||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
|
| 14.02.2014, 09:42 [ТС] | |
|
Нет не странный вопрос.
Зачем тут потоки- долгая история попыток написать и оптимизировать работу. Во всех вариантах без потоков у меня 1)зависала(останавливалась) программа на определенном цвете(курсор мышки крутился) (это при наличии одновременно звука)- видимо из за большого количества обрабатываемых строк 2) не работала кнопка стоп. Почитал, что потоки разграничивают и оптимизируют работу. Соответственно принялся в бой. Ну вот так. Сейчас попробую как предлагаете!Такой вариант я вроде не рассматривал. Добавлено через 19 часов 17 минут SatanaXIII, проверил, код из 29 поста тоже работает, и не зависает ничего. Единственное что, при такой совметной записи цвета и звука в радиогруппе1, как развести второй радиогруппой, состоящей из двух кнопок- 1.воспроизводить только цвет 2. Цвет+звук ? Где подлезть то можно? Пробовал тут midiOutOpen(&Out,0,0,0,0); вставить радиогруппу, не идет. В случае присутствия потока цвета и звуа отдельно- там просто, выключаю поток звука и все.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||
| 14.02.2014, 10:39 | ||||||
|
Типа тогошеньки:
0
|
||||||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
|
| 14.02.2014, 10:58 [ТС] | |
|
Да, работает, спасибо!
Интересный подход, в одной группе кейсов указывать цвет, звук, да еще и разделение...раньше я думал что компилятор читает последовательно и целой цепочки перебора цветов и звуков неполучиться.
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|||||||
| 14.02.2014, 11:15 | |||||||
|
Добавлено через 10 минут Более менее по человечески:
0
|
|||||||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
||||||
| 14.02.2014, 11:34 [ТС] | ||||||
|
Круто!
А если такая разбивка еще? Граммотно? (не учитывая пока конечно ваш последний пост)
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
||||||||||||||||||||||
| 14.02.2014, 12:57 | ||||||||||||||||||||||
|
Нравоучения
Оформление ужасающее.
Шестая и седьмая строка:
Вот так бы я мог сказать, так как совершенно не видать, что в конце каждой строки стоит слип. Хоть пробелом бы разделили. Все сливается. С шестой по десятую строку:
..и по каждой строке много замечаний. Вообще все это какая-то неуправляемая мешанина из разношерстных команд. От былой стройности кода не осталось и следа. О какой-то там синхронизации звука с цветом вообще речи не идет.
0
|
||||||||||||||||||||||
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
||||||
| 27.02.2015, 12:29 [ТС] | ||||||
|
SatanaXIII, спасибо за "нравоучения", вы говорите что зачем писать в одном case два цвета, разделенных
0
|
||||||
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 05.03.2015, 09:27 | |
|
Нужно составить общую формулу, алгоритм, в котором все это учесть.
Не по теме: P.S. Раз в год Pir12345 появляется на форуме и пишет в продолжении темы. Х)
0
|
|
|
43 / 1 / 1
Регистрация: 05.01.2014
Сообщений: 337
|
|
| 05.03.2015, 11:02 [ТС] | |
|
SatanaXIII, да, к сожалению так получается что захожу редко. По данному вопросу уже создал новую тему.(в старой написал чтобы не плодить одно и тоже). Помню UI предупреждал, что нужно заводить новую тему.
Поможете с общим алгоритмом(в новой теме)?
0
|
|
|
Почетный модератор
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
|
|
| 05.03.2015, 11:30 | |
|
Все он правильно говорил. Дальнейшее обсуждение в новой теме: Преобразование массива 7 чисел в вывод 12 позиций
0
|
|
| 05.03.2015, 11:30 | |
|
Может ли один делегат одновременно работать в двух разных потоках? как использовать методы класса в разных потоках? Метод выполнить в 11 разных потоках, соответственно для разных входных массивов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|