|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.07.2010, 15:47 | #1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Theard - Cpu usage :)
Доброго времени суток уважаемые форумчане, у меня возникла маленькая проблемка, а проблемка заключается в следующем, при использование потока, нагрузка на процессор увеличивается с 20% до 80%, что не есть очень хорошо, вот собственно код.
Собственно как эту нагрузку уменьшить, как этот поток остановить после того как я проверю данные из файла? Пробовал и Sleep'ом и как только не извращался, но почему-то не помогло Код:
Последний раз редактировалось coNsept; 17.07.2010 в 15:54. |
17.07.2010, 17:23 | #2 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Проблему исправил, топик можно удалить, либо закрыть. (Может кому и пригодится)
Код:
Последний раз редактировалось coNsept; 17.07.2010 в 17:27. |
18.07.2010, 02:22 | #3 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Кстати, если уж на то пошло, то передаваемая в CreateThread функция должна иметь тип, как в первом примере. Ибо могут быть ошибки во время выполнения на 64-х битных виндах.
Код:
|
19.07.2010, 07:48 | #4 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Ага, так уже и сделал, и поток послал спать на веке веков :D (пасябкин)
А мой второй пример, кстати тоже не правильный, так как поток ожидал всего 1 минуту и далее уходил в процедуру, опять же нагружая процесор... Новый вариант, все работает как часы Код:
Последний раз редактировалось coNsept; 19.07.2010 в 07:52. |
19.07.2010, 14:06 | #5 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Ну, чтобы усыпить поток, не обязательно цикл делать, можно просто Sleep (INFINITE);
А вообще зачем это вам? Вы запускаете отдельный поток только для того чтобы он спал, в этом есть резон? |
20.07.2010, 08:52 | #6 | |
Пользователь
Регистрация: 24.08.2007
Сообщений: 88
|
если честно не понял зачем "спящий красавец" рожается.
Цитата:
|
|
21.07.2010, 19:53 | #7 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Данные функций в функции Timer обновляются по изменению значений установленных в определенном файле, поэтому чтобы не перезапускать программу, что не очень желательно, данные должны обновляться, как бы в режиме реального времени, после чего я отправляю этот поток спать дабы не грузить процессор. Вот и весь компот
Цитата:
Последний раз редактировалось coNsept; 21.07.2010 в 19:58. |
|
22.07.2010, 16:55 | #8 | |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Цитата:
И как оно обновляет в реальном времени, если поток спит? Или вы каждый раз запускаете поток из основного? В таком случае тем более нельзя отправлять поток спать не давая ему завершится, иначе, со временем, программа может превысить лимит потоков. |
|
23.07.2010, 12:00 | #9 |
Пользователь
Регистрация: 24.08.2007
Сообщений: 88
|
после Sleep(дофига); поток уже ничего не будет делать...
Код:
в результате в функции Timer также запускающейся в отдельном потоке мы ждем 4100 мс, грузим файлик и начинаем новый бесконечный поток... при этом поток Timer умирает с криком "1"... если цель - точное измерение времени то мне тут хорошую вещь подсказали: timeSetEvent(); позволяет устанавливать точность. зы, а всетаки какие данные изменяет спящий поток, он ж даже при инициализации ничего не делает, только изредка захватывает проц? |
23.07.2010, 13:22 | #10 | ||
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Цитата:
Вот что получилось Код:
Цитата:
Последний раз редактировалось coNsept; 23.07.2010 в 13:46. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
CPU Thermometer in Win VISTA | ongleb | Общие вопросы C/C++ | 1 | 26.05.2010 13:37 |
шейдеры в CPU (вопрос) | Vodyanoi | Свободное общение | 2 | 25.03.2009 04:36 |
Программа для определения CPU | netsky2004 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 10.01.2009 02:07 |
Не могу получить CPU speed | TaTT DoGG | Общие вопросы .NET | 2 | 02.01.2009 17:20 |
Температура CPU | vicvtor | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 12.05.2008 09:21 |