|
|
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
BellicМожете меня расстрелять, но Он прекрасно работает!..))) Попробуй, пока он работает, нажать, скажем, крестик в правом верхнем углу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 16:57 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Freedoom , очень интересно получилось! Класс! (Нет явного цикла ожидания, доп.потока и TAG использован по совету парней!) Архив проекта прилагается ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:02 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellic Freedoom , очень интересно получилось! Класс! (Нет явного цикла ожидания, доп.потока и TAG использован по совету парней!) Жаль только электроэнергии за нагрузку процессора в 100% и тормозов компьютера из-за этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:06 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
softwarerПопробуй, пока он работает, нажать, скажем, крестик в правом верхнем углу.Ничего не произошло, и по крайней мере от Крестика я буду избавляться вообще! Ну нельзя закрывать окно посредине открытого цикла! Но это уже мелочи и совсем другая история... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:15 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
BellicНу нельзя закрывать окно посредине открытого цикла!Даже если пользователь передумал ждать окончания твоего цикла? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:19 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
YuRockЖаль только электроэнергии за нагрузку процессора в 100% и тормозов компьютера из-за этого. Тормозов не наблюдается, а скачек нагрузки на CPU - c 25 до 50%. Это много? Можно если захочется - таймером ворон на ветках посчитать!..))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:26 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
YuRockДаже если пользователь передумал ждать окончания твоего цикла?Выход из процедуры будет возможен только по кнопке Выход, с корректными действиями. А сам расчет (в Тестовом варианте - это счет от 0 до 500 и от 501 до 1000 и т.д.) в Реальном цикле выполняется достаточно быстро, так что юзер и не успеет мышкой на Крестик навести (Если он его еще сумеет найти на форме)!..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:32 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellicа скачек нагрузки на CPU - c 25 до 50%. Это много? Значит у тебя 4 процессора (ядра). На одном уже "работала" подобная "программа", а эта запустилась на другом. А если бы было одно ядро - нагрузка была бы 100. Но не отчаивайся, и на многоядерных компьютерах, все программы, GUI-поток которых работал на том процессоре, который ты отправил в кому, будут тормозить. Много это или не много - пользователям твоей программы решать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:34 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
YuRockЗначит у тебя 4 процессора (ядра). На одном уже "работала" подобная "программа", а эта запустилась на другом. А если бы было одно ядро - нагрузка была бы 100. Но не отчаивайся, и на многоядерных компьютерах, все программы, GUI-поток которых работал на том процессоре, который ты отправил в кому, будут тормозить. Много это или не много - пользователям твоей программы решать.Да, верно, у меня 4 ядра!..) С Одним ядром - это Pentium-1 что ли? Так мой уже такой давно на свалке!..)) А программа реальная - для узконаправленного круга пользователей пишется - для себя, ну максимум еще может для 2 -х других друзей! Ну а будут тормоза - можно и твоим Потоковым вариантом воспользоваться! - Он судя по индикатору - вообще не грузит процессор!..) Надеюсь проблем, обращения из Потоковой процедуры к другим функциям и процедурам, не должно быть?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 17:59 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
BellicС Одним ядром - это Pentium-1 что ли? В твоём случае, если б у тебя было 2 ядра, оба стали б заняты (т.к. 1-е уже кто-то занял). Не, если не жалко электроэнергии и нервов, плевать на прокляться благодарных пользователей - я ж не против. BellicПотоковой процедуры к другим функциям и процедурам, не должно быть Функциям и процедуры, как и память, не принадлежат какому-то потоку. Их можно использовать из любого. Только поток кода будет хоть и одинаков, если вызывать одну функцию в разных потоках, но их будет несколько, а вот память - одна на всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:08 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellicскачек нагрузки на CPU - c 25 до 50%. Это много? Это полный П. У правильно написанной программы в покое должно быть нулевое потребление ЦПУ. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:13 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
YuRock , Кстати - добавил Sleep(1); в ЭТОТ КОД , и процент загруженности вообще упал, проверь: Код: pascal 1. 2. 3. 4. 5. - Без Sleep(1) -- 25-27% в ожидании нажатия клавиш; - Со Sleep(1) -- загрузка в ожидании практически не увеличилась (1-5%)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:18 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Продолжаем дальше фигнёй страдать??)) А вот воспользовались бы таймером, даже в потоке. То не пришлось бы заниматься такими оптимизациями))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:25 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Тем более, applicationevents сообщит о нажатии клавиши. И вообще не надо никаких собственных крутых for-ов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:26 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellic, А теперь попробуй закрыть программу крестиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:30 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellic YuRock , Кстати - добавил Sleep(1); в ЭТОТ КОД , и процент загруженности вообще упал, проверь: Код: pascal 1. 2. 3. 4. 5. - Без Sleep(1) -- 25-27% в ожидании нажатия клавиш; - Со Sleep(1) -- загрузка в ожидании практически не увеличилась (1-5%)! Не хочу я пробовать Это мрак. Что со слипом, что без. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:41 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
rgreatBellic, А теперь попробуй закрыть программу крестиком. rgreat , Вы похоже Тему вообще не читаете!? ВОТ ТУТ я уже ответил на этот вопрос! Ну нету у меня на Реальной форме КРЕСТИКА!!! На Тестовой форме он конечно имеется, но я не буду туда нажимать! Я форму создавал сразу без крестиков, значков сворачивания и минимизаций! Что бы потом вопросов не было!..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:44 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Беллик, сделай нормально, правда :) Тебе же самому будет лучше и проще потом. Не надо потоков бояться, всё там с ними просто, если один раз разобраться. ProcessMessages - это, как правило, костыль, хоть со слипом, хоть без. Рано или поздно он гарантированно вылезет боком. Причём в таком месте, что вообще никак не связано напрямую с кодом. И вот тогда всю голову сломаешь, почему глючит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:49 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
НяшикПродолжаем дальше фигнёй страдать??)) А вот воспользовались бы таймером, даже в потоке. То не пришлось бы заниматься такими оптимизациями)))А кто Вам мешает написать свой вариант на основе моего Тестового и приложить к сообщению полный рабочий проект(без ошибок ток)? Тем более, applicationevents сообщит о нажатии клавиши. И вообще не надо никаких собственных крутых for-ов Няшик , мне на пиво братишка позвал, к сожалению вернусь только завтра, но я хотел бы Заценить и Ваш вариант с Таймером и Эвентсами! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:53 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellic, Хех, присоединюсь к остальным: Страдай фигней, на здоровье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 18:57 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
makhaonБеллик, сделай нормально, правда :) Тебе же самому будет лучше и проще потом. Не надо потоков бояться, всё там с ними просто, если один раз разобраться. ProcessMessages - это, как правило, костыль, хоть со слипом, хоть без. Рано или поздно он гарантированно вылезет боком. Причём в таком месте, что вообще никак не связано напрямую с кодом. И вот тогда всю голову сломаешь, почему глючит. Да я собственно с Потоков и начинал тему, до этого просто никогда не работал с ними! Но по ходу оказалось, что можно и без них обойтись, и код очень коротким получался ведь!? А что касается ProcessMessages , то я им и в других затяжных процедурах пользуюсь, чтоб избавиться от "Программа не отвечает"(или как там?) в шапке форм! А как по другому этого избежать? Вот недавно сравнительно узнал, что можно ProgressBar.Refresh делать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:01 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
дивлюсь я вам, мужики. Вместо того, чтобы доедать оливье и в телик пялиться, вы домашку школьнику, пересевшего с бейсика на паскаль, делаете. Да и еще с ним аргументированно спорить пытаетесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:11 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Док, Не знаю, как кто, я уже оливье с шубой объелся Хватит, надо калории немного потратить ) Пациент не совсем упоротый, шансы есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:14 |
|
||
|
Обработка нажатия трех кнопок в параллельном потоке
|
|||
|---|---|---|---|
|
#18+
Bellic, У меня всё без ошибок работает. Ошибки делаешь ты... Это задача вообще на 10 - 20 минут в реализации. Может бы начал с чего нибудь полегче ???? НяшикЦиклы к слову вообще не нужны, уже есть ApplicationEvents Можно и так сделать ведь Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 19:28 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39579035&tid=2041379]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 469ms |

| 0 / 0 |
