![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выполнение других задач [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Neox © (2003-01-10 11:35:00)Приветсвую!
Как можно избавиться от подвисания программы, когда она копирует большие (600-700 МБ) файлы? Использовал 2 варианта - через File и TFileStream - оба тормозят. Может, надо процедуру копирования запускать в отдельном процессе?
Zemal (2003-01-10 15:14:00) [1]Все задачи, по идее, должны решаться отдельными потоками - так делают хорошие программисты... это есть правильный стиль программирвания, хоть достаточно сложный и трудоёмкий. Я, например всё так и делаю, т.к. убеждён, что основной кодовый поток (VCL-поток) должен заниматься прорисовкой интерфейса и диалогом с пользователем, а не производить впечатление зависшей программы. Терпеть ненавижу такие программы. В конечном счёте именно этим и отличается программист от пародии на программиста :). И вообще, основной кодовый поток (VCL-поток), должен координировать действия потоков в промежутках между общениями с пользователем и всё! Больше ничего! Надоело уже натыкаться, даже среди дорогих програмных продуктов, сделанных профессиональными командами разработчиков, на "мёртвые" окна... создаётся впечатление, что тебя просто игнорируют :(. Не забывайте, что смый главный поток вашей программы - пользователь, и этот поток надо всегда стараться держать в реалтайме :), иначе я такое расцениваю как неуважение :(.
Neox (2003-01-10 14:54:00) [2]Хорошо, попробую
а насчет процесса - это я оговорился, конечно же поток :)
F1 (2003-01-10 11:56:00) [3]Попробуй Application.ProcessMessages вставь...
Или в отдельный поток(не процесс!!!) вынеси, приоритет поменьше поставь...