|
|
|
Ответ программы на запросы пользователя
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Написал ресурсоемкое приложение выполняющее преобразование файлов из директории. В которой ну очень много файлов. При этом программа помещает в оперативную память просмотренные записи. Просматривая следующую запись, она проверяет на возможность дублирования этой записи. ... Вопрос следующий. Как можно предусмотреть возможность остановки упомянутого процесса. Просто добавить кнопочку, которая при нажатии на неё меняет значение некоторой переменной (которую постоянно проверяет выполняющийся код программы) не получается. Приложение при запуске описанного процесса как бы вешается, то есть не отвечает на запросы пока не выполнит вышеупомянутые действия. Подскажите, пожалуйста, как быть? Так же хочется, что бы окно программы не зависало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:32:06 |
|
||
|
Ответ программы на запросы пользователя
|
|||
|---|---|---|---|
|
#18+
Следует почитать по теме "Многопоточное программирование" Обработчик основной задачи должен работать в одном потоке. формочка с кнопкой "Отмена" в другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:42:12 |
|
||
|
Ответ программы на запросы пользователя
|
|||
|---|---|---|---|
|
#18+
Создавать вторичную нить и запускать свою тяжелую задачу в ней. А основную нить оставить для ГУЯ. Читать про функции CreateThread, TerminateThread, ExitThread. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:43:09 |
|
||
|
Ответ программы на запросы пользователя
|
|||
|---|---|---|---|
|
#18+
vanoman, White Owl, cпасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:50:38 |
|
||
|
Ответ программы на запросы пользователя
|
|||
|---|---|---|---|
|
#18+
да, но как быть если надо его ОСТАНОВИТЬ! например псевдо-код потока обрабатывающего чего-то-там Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. [не претендую на уникальность] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 08:15:07 |
|
||
|
Ответ программы на запросы пользователя
|
|||
|---|---|---|---|
|
#18+
yncas Вопрос следующий. Как можно предусмотреть возможность остановки упомянутого процесса. Просто добавить кнопочку, которая при нажатии на неё меняет значение некоторой переменной (которую постоянно проверяет выполняющийся код программы) не получается. Чтобы приложение реагировало на изменяемую переменную, нужно в цикле, где эта переменная проверяется (и вообще во всех критических местах) ставить вызов Application->ProcessMessages(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2007, 09:23:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34815503&tid=2028140]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 343ms |

| 0 / 0 |
