![]() |
Показать все 5 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- синхронизация vcl + потоки (https://hlfx.ru/forum/showthread.php?threadid=3124)
синхронизация vcl + потоки
Такая задача, есть vcl форма и отдельный udp поток, где и работает вся логика/прием/передача приложения.
Необходимо наиболее эффективно передать часть обновленных данных с udp потока в форму ( чтобы поток не ждал отрисовки формы) , думаю создать стэк сообщений обрамленный критической секцией, с потока писать в секцию, отправлять пост сообщение форме, она забирает все что в стеке ну и перересовывается. Немогу найти инфы как делают это в дургих приложенияъ, есть идеи получше или более верное решение данной задачи?
Поток как создаешь? Через vcl-класс или через _beginthreadex? В первом случае есть vcl-ный же механизм синхронизации, во втором нужно как-то иначе изголяться - у меня там просто промежуточный класс, в котором очередь сообщений, с одной стороны пополняется потоком из пайпов, с другой выгребается потоком остальной логики. Не уверен, что в таком случае не может быть косяка из-за одновременного удаления/записи в очередь, но пока что глюков не было.
__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran
vcl синхронизация это sendmessage, тут потоку придется зависнуть и ждать пока форма отрисуется.
без ожидания результата можно отправлять postmessage, но передать можно указатель, ну или любые данные весом 2 байта.
ну у меня что то как в твоем случае, вот счас пишу как раз промежуточный класс стэк, но помещу его в критическую секцию.
если у тебя глюков нет то либо все шустро работает либо класс который используешь потокобезопасный.
еще интересует точный ответ, можно ли без последствий писать в один удп сокет данные с разных потоков? у меня на практике все работает но бывает редко косяки, просто если есть глюки 1 на 1000000 то переделаю.
__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran
Временная зона GMT. Текущее время 19:55. | Показать все 5 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024