Форум по Delphi программированию

 



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.06.2019, 15:02
Del-san7 Del-san7 вне форума
Прохожий
 
Регистрация: 05.06.2019
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Параллельные процессы

В своей программе - я обрабатываю массив, массив очень большой и обрабатывается порядка 20 секунд. Как в это время, производить к примеру написание текста в memo, ведь при обработке массива, программа ни чего не даёт сделать, даже закрыть ее
Ответить с цитированием
  #2  
Старый 05.06.2019, 18:46
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,607
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вынеси обработку в поток. По завершении поток должен сообщить основному потоку, что задание выполнено и данные можно использовать.
Для более детальных советов надо уже знать что и как ты делаешь.
Ответить с цитированием
  #3  
Старый 27.05.2020, 09:24
DrInfinity DrInfinity вне форума
Прохожий
 
Регистрация: 09.02.2018
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Вынеси обработку в поток. По завершении поток должен сообщить основному потоку, что задание выполнено и данные можно использовать.
Для более детальных советов надо уже знать что и как ты делаешь.

У меня похожая проблема, только надо параллельно читать с COMPort и парсить+выводить на визуальные компоненты. Что лучше вывести в отдельный поток? А если постоянно это делать, правильнее каждый раз запускать и останавливать поток? или поток крутить в ожидании данных?
Ответить с цитированием
  #4  
Старый 27.05.2020, 23:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 7,607
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Читаешь данные в главном потоке, что бы не путаться.
После чтения складваешь полученные данные в очередь (queue).
Потоков сколько хочешь (только не забудь синхронизацию, если будет несколько). Поток(и) забирают очередной объект из очереди и обрабатывают.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2020

ВКонтакте   Facebook   Twitter