Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
RAD XE3+

Вызов события из "Синхронизатора" потока, не нарушится ли синхронизация?

27.02.2019, 14:42. Показов 1495. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем,

с потоками я работал по сей день таким образом, что данных было у меня всегда не много и что я прямо из синхронизатора выводил в нужный контрол данные, сейчас жизнь немножко изменилась и данных поприбавилось, их теперь порядка 50-60 значений, оформленных в структуру и они должны быть не привязаны из потока к конкретным контролам... крутил - вертел ситуацию и придумалось, что если я буду в синхронизаторе вызывать событие, которое в главной программе типа как синхронизированно вызваться должно будет и в том событии уже буду писать данные из структуры в нужные мне контролы. Действительно ли это так будет? По логике, я передам управление прямо из синхронизатора в основную программу и там в уже засинхронизированном состоянии я заберу эти переданные данные.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2019, 14:42
Ответы с готовыми решениями:

Вызов события из другого потока
Здравствуйте. Подскажите как вызвать событие из другого потока. Объявление события вот так: public delegate void...

Вызов события нажатия кнопки из другого потока
Всем доброго времени суток)Ребят, помогите решить проблему!Суть моей программки проста, нужно прикрутить голосовое управление(оно...

Вызов события из потока: ошибка доступа к элементу управления
Смысл задачи следующий: В отдельном потоке в цикле проверяется пинг до удаленного хоста в случае изменения состояния изменяется...

5
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
27.02.2019, 14:51
Все, что делается внутри вызванной с synchronize процедуры будет выполнено в основном потоке. Включая вызов других процедур.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
27.02.2019, 15:16  [ТС]
Меня это и смущает, что вызов события, это вызов функции по адресу, а не явно. Произойдет ли вызов корректно, но если Synchronize действительно, связана с основным потоком, то скорее всего такой вызов будет тоже корректен
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
27.02.2019, 16:17
Ответ прост: будет ли продолжаться выполнение кода в синхронизированной процедуре параллельно вызванному событию? А если это событие - функция, и нам надо получить результат её работы? Ответ очевиден. Поэтому в синхронизированной процедуре все вызовы (если, кстати, я не ошибаюсь, то "явный" вызов процедуры - это тоже вызов её по адресу, если нет директивы inline) вложенных процедур и событий будут выполняться в основном потоке.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
27.02.2019, 17:48  [ТС]
Я просто неохотно делаю то, что я не знаю как работает в корне)) оттуда и дотошные вопросы у меня постоянно. Опыт мой вроде увенчался успехом, сразу в боевых условиях пробовал сидя на корточках, прогал кусок кода в серверном помещении там так холодно бррр
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
27.02.2019, 23:37
событие - это оно для вас событие )
а для класса это простой метод
поэтому выполнен он будет совершенно обычно

событием он называется потому что вызывает его кто-то "извне" для вашей программы
а точнее - главный цикл обработки сообщений
вы тоже можете его вызывать совершенно спокойно
никакой магии в этом нет
параллельно ничего в программе без вас не выполняется
если выполняется ваш код, значит обработчик очереди НЕ выполняется
и наоборот )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2019, 23:37
Помогаю со студенческими работами здесь

Unity C#. Вызов события в главном потоке из вторичного потока
Здравствуйте. Столкнулся с проблемой при написании простой мультиплеерной игрушки. Я вызываю асинхронный метод UdpClient'а BeginRecieve. В...

Вызов метода основного потока из второстепенного потока
Здравствуйте! Столкнулся с проблемой: есть два потока (основной и не основной), мне нужно вызвать из не основного потока метод, который...

Вызов события из другого события по нажатию клавиши
Всем привет! Есть кнопка на Windows.Forms, к ней привязано событие. Хочется, чтобы еще и по нажатию Enter эта кнопка срабатывала...

Синхронизация потока
Имеется поток, ошибка в wsocket1.Как синхронизовать? procedure tzon.execute; var t:integer; begin WSocket1.Sendline('JOIN...

Синхронизация потока
Здравствуйте! Подскажите пожалуйста как вывести элементы массива из потока. (Задание: В теле main(), после окончания работы потоков...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru