Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Строки и потоки [D7, XP]


Steep ©   (2006-10-20 10:15:00) 

Можно ли сделать сортировку в отдельном потоке с выводом прогресса?
вобще возможно это используя TList (TStringList).Sorted := true;?
PS С потоками еще не делал программы, токо начал изучать..


Anatoly Podgoretsky   (2006-10-20 12:54:00) [1]


> Даже демо прилагается:

Там даже три массива одновременно сортируются.


Steep   (2006-10-20 10:46:00) [2]


> почитать про потоки у Кэнту или Тексейры

А как книжка называеться?

> MsGuns ©  

Огромное спасибо!


MsGuns   (2006-10-20 10:42:00) [3]

>Steep ©   (20.10.06 10:15)  
>Можно ли сделать сортировку в отдельном потоке с выводом прогресса?
вобще возможно это используя TList (TStringList).Sorted := true;?

Можно. Для этого надо создать поток, передать ему указатель на TList.
В потоке создать свой список, переписать туда содержимое исходного списка и выполнить сортировку, при этом в процедуре CustomSort, по значению индекса "рисовать" прогресс в контроле формы-инициатора потока, использую Synchronize.
По завершению сортировки, новый список переписать в исходный (в Synchronize), свой прибить.

Если исходный список никак не обрабатывается в процессе выполнения потока (например, информация из него не визуализируется в стрингриде или листвью по каким-то "своим" событиям), то создавать новый список нет необходимости, поток "смело" может оперировать "оригинальным" списком. В этом случае надо лишь позаботиться о блокировке одновременного запуска нескольких сортировок (например, используя семафоры)

Рекомендую почитать про потоки у Кэнту или Тексейры. Довольно доступно и исчерпывающе.


ЮЮ   (2006-10-20 10:39:00) [4]

Даже демо прилагается:

C:\Program Files\Borland\Delphi7\Demos\Threads


Steep   (2006-10-20 10:39:00) [5]

Пасип!


Сергей М.   (2006-10-20 10:29:00) [6]

Да, есть.


Steep   (2006-10-20 10:25:00) [7]


> возможно при использовании CustomSort()

В справке примеры есть? (просто делфи под рукой нет)


Сергей М.   (2006-10-20 10:22:00) [8]


> возможно это используя TList (TStringList).Sorted := true;
> ?


Нет.

Но возможно при использовании CustomSort()


Наверх

Титульная страница Поиск, карта сайта Написать письмо