powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
25 сообщений из 33, страница 1 из 2
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865354
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим я захочу создать в потоке TMemo, но никак его не отображать и вот нужна ли синхронизация при обращении к методам Memo из потока? По идее, кроме самого потока владельца никто доступ к Memo не получит и вроде как не нужна, но с другой стороны это vcl-компонент и он вполне себе может лезть куда не надо.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865356
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невизуальный TMemo, о да!...

навеяло...

...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865378
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Визуальные компоненты vcl нельзя создавать из других потоков. Как минимум нужен synhronize.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865382
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема у меня с компонентом TdxRichEditControl, который я хочу вызывать в нескольких потоках и такой вызов:
Код: pascal
1.
2.
3.
4.
5.
 Synchronize(procedure begin
             AWordFile := TdxRichEditControl.Create(nil);
             AWordFile.LoadDocument(Value);
             AWordFile.Free;
             end);


ошибок не вызывает, но и потоки при этом теряют смысл. И как-же выкрутится из такой ситуации?
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865386
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъИ как-же выкрутится из такой ситуации?
Может тогда расскажите о задаче, а не о принятом вами пути решения этой задачи?
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865388
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъошибок не вызывает, но и потоки при этом теряют смысл.
Да и сам код какой-то бессмысленный: загружается документ и тут же уничтожается.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865404
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanСтрадалецъошибок не вызывает, но и потоки при этом теряют смысл.
Да и сам код какой-то бессмысленный: загружается документ и тут же уничтожается.

Зато в потоке :)
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865428
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъДопустим я захочу создать в потоке TMemo, но никак его не отображать и вот нужна ли синхронизация при обращении к методам Memo из потока? По идее, кроме самого потока владельца никто доступ к Memo не получит и вроде как не нужна, но с другой стороны это vcl-компонент и он вполне себе может лезть куда не надо.

Компоненты не нужно создавать в потоках... Для какой цели вы собрались это делать?
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865435
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отнюдь не бессмысленный, просто там нет обработки ошибок. А смысл именно в корректном/некорректном открытии т.к. надо проверить массово битый или не битый документ.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865445
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была еще мысль его для поиска замены текста использовать, но в таком варианте не пойдет.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865473
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы поискал, каким методом этот edit загружает документ, и нельзя ли этот метод вызвать сам по себе. Если такого нет, то придется страдать, да. Как вариант можно вместо потоков запускать процессы с параметром пути к файлу.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865476
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2придется страдать, да
Впрочем, судя по нику, ТС-у это привычно )))
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865540
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъОтнюдь не бессмысленный, просто там нет обработки ошибок. А смысл именно в корректном/некорректном открытии т.к. надо проверить массово битый или не битый документ.
AFAIK все оконные WinAPI компоненты (на которых построена VCL) используют сообщения для работы. Соответственно они могут работать только в основном потоке. Хотите проверять многопоточно - делайте отдельное приложения для проверки и вызывайте его с парамером, например. И возвращайте код ошибки при необходимости.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865577
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создание визуального компонента в VCL в потоке - это членовредительство.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865597
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъОтнюдь не бессмысленный, просто там нет обработки ошибок. А смысл именно в корректном/некорректном открытии т.к. надо проверить массово битый или не битый документ.

если очень хочется - создавай в потоке richedit на голом WinAPI.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865612
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockесли очень хочется - создавай в потоке richedit на голом WinAPI.

Сдаётся мне, что аффтар так и не озвучил конечную задачу. Ибо загрузиться-то может
практически любой текст, но толку с этого, если половина будет мусором. С тем же успехом
можно тупо обычным TFileStream посчитать количества открывающих и закрывающих фигурных
скобок в файле и ругаться если они не совпадают.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865647
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerВизуальные компоненты vcl нельзя создавать из других потоков.Можно. Только нужно отдавать себе отчет, что получится. WinAPI позволяют создавать очереди обработки сообщений в разных потоках. А компонент, которые модифицируют глобальные объекты - единицы
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865851
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_DmSerВизуальные компоненты vcl нельзя создавать из других потоков.Можно. Только нужно отдавать себе отчет, что получится. WinAPI позволяют создавать очереди обработки сообщений в разных потоках. А компонент, которые модифицируют глобальные объекты - единицы
Проблема только в том, что в кишках VCL может происходить всякое, и где там компонент вдруг обратится к application, например, неизвестно. Но попробовать можно, вдруг прокатит
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865961
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. richedit и richeditcontrol - это мягко говоря разные компоненты
2. Смысл этой задачи просто выполнять эпизодически массовую проверку, а это порядка полумиллиона документов, на исправность. Удалось загрузить файл с расширением doc,docx, значит все хорошо, ну а не удалось значит его в черный список.
При таком количестве документов естественно возникло желание использовать потоки, но в силу невозможности завернуть richeditcontrol в поток придется делать это иначе, через запуск нескольких приложений.

ПС: _Vasilisk_ а не покажете примерчик работы richedit в нескольких потоках?
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865979
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ1. richedit и richeditcontrol - это мягко говоря разные компоненты
2. Смысл этой задачи просто выполнять эпизодически массовую проверку, а это порядка полумиллиона документов, на исправность. Удалось загрузить файл с расширением doc,docx, значит все хорошо, ну а не удалось значит его в черный список.
При таком количестве документов естественно возникло желание использовать потоки, но в силу невозможности завернуть richeditcontrol в поток придется делать это иначе, через запуск нескольких приложений.

ПС: _Vasilisk_ а не покажете примерчик работы richedit в нескольких потоках?
Какие основные причины того, что файл битый?
Неверный формат (например картинка с расширением .doc) или документ поврежден (например не до конца скачан)?
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865984
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъУдалось загрузить файл с расширением doc,docx, значит все хорошо, ну а не удалось значит
его в черный список.

Загрузить .doc в контрол, который принимает RTF. Ню-ню...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39865993
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сомнительная задача. Начать хотя бы с того что RichEditControl не поддерживает всех наворотов современного MSWord коим нет числа, и соответственно не может провалидировать все документы. Да и не предназначен для этого.
PS: помимо всего, после загрузки документа, контрол запускает свои потоки для форматирования документа
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39866133
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ,

docx - это zip-архив. Достаточно проверить сигнатуры и прочитать оглавление - по идее даст 90% гарантию того, что с документом все ок. Будет всяко быстрее, чем загрузка "в куда-то...". И сделать это можно в потоке, причем безопасно.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39866153
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если vcl-ный объект создается в потоке, и никто другой к нему не обращается, то всё ок будет.

Что касается проверки вордовских файлов, то лучший вариант -- это сам ворд через OLE . Скорость не самая быстрая, зато с гарантией.
...
Рейтинг: 0 / 0
Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
    #39866165
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiЕсли vcl-ный объект создается в потоке, и никто другой к нему не обращается, то всё ок будет.

Что касается проверки вордовских файлов, то лучший вариант -- это сам ворд через OLE . Скорость не самая быстрая, зато с гарантией.
N докер-контейнеров (или виртуалок) с общим брокером выдачи файлов в параллели разгребут быстро
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нужна ли синхронизация для визуального компонента если он создается в рамках потока?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]