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

навеяло...

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


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

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

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

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

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

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

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

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

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

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

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


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