Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 20:56   #1
SVM
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 12
По умолчанию Почему процессор загружен?

Здравствуйте!
Подскажите плз. по какой причине программы которые я пишу на Visual C++ 2008 express в бездействии занимают 50% ресурса процессора.
SVM вне форума Ответить с цитированием
Старый 18.11.2009, 21:18   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

у меня такое было, когда я намудрил с WM_PAINT
counter вне форума Ответить с цитированием
Старый 18.11.2009, 21:27   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Ну да в принципе... там CPaintDC вначале ставить и все. Дело в том, что тут люди (ну я так думаю) не видять сквозь время и пространство. Так что хоть намекните какие функции что вы там пишите.
BOBAH13 вне форума Ответить с цитированием
Старый 18.11.2009, 21:47   #4
SVM
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 12
По умолчанию

Уууфффф!!! Даже не знаю с чего начать описывать прогу. Довольно таки большая. Попробую так: сама программа представляет собой подобие графического редактора. Пишу ее в VC++ 2008 на WinAPI. Интерфейс представляет собой главное окно с четырьмя дочерними окнами, соответственно имеется 5 функций обработки сообщений LRESULT CALLBACK WindowProc(...). В цикл сообщений ничего не добавлял, как его С++ создал так он и есть. Никаких других потоков, нитей и тому подобных вещей не использовал. То есть единственное что у меня работает постоянно, так это только цикл сообщений:

while(1)
{
if (PeekMessage(&msg,NULL,0,0,PM_REMOV E))
{
if (msg.message == WM_QUIT)break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

Где искать, пока что не имею даже представлений. Может кто чего подскажет?
SVM вне форума Ответить с цитированием
Старый 18.11.2009, 22:08   #5
SVM
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 12
По умолчанию

А чего можно с WM_PAINT намудрить чтобы такая лажа была?
SVM вне форума Ответить с цитированием
Старый 18.11.2009, 22:27   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от SVM Посмотреть сообщение
А чего можно с WM_PAINT намудрить чтобы такая лажа была?
корректно обрабатывать его. Смотреть здесь http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

Последний раз редактировалось BOBAH13; 19.11.2009 в 22:21.
BOBAH13 вне форума Ответить с цитированием
Старый 19.11.2009, 22:04   #7
SVM
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 12
По умолчанию

BOBAH13: спасибо за ссылку. Теперь точно знаю что это не WM_PAINT. Ну что же. Как нибудь разрулю.
SVM вне форума Ответить с цитированием
Старый 19.11.2009, 22:25   #8
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от SVM Посмотреть сообщение
BOBAH13: спасибо за ссылку. Теперь точно знаю что это не WM_PAINT. Ну что же. Как нибудь разрулю.
Сразу заметил, что ну ненравится мне ваш обработчик очереди сообщений, так же посмотрите как MS делают оконые приложения, может натолкнет на мысль. http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

и еще, если у вас приложение уже раздулось, а в самом начале когда тестировали, когда было мало кода, тоже были такие нагрузки или не заметили ?
BOBAH13 вне форума Ответить с цитированием
Старый 20.11.2009, 11:16   #9
SVM
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 12
По умолчанию

Заметил. Нагрузок небыло. Обработчик создавался автоматом самим С++, да и в различных талмудах в качестве примера приводится точно такойже. Мне кажется это все изза количества этих обработчиков. На даный момент в проге таких уже 6 штук. Где-то они между собой не дружат. Буду по одному останавливать.

За ссылку благодарен. Спасибо.
SVM вне форума Ответить с цитированием
Старый 20.11.2009, 13:26   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от SVM Посмотреть сообщение
Заметил. Нагрузок небыло. Обработчик создавался автоматом самим С++, да и в различных талмудах в качестве примера приводится точно такойже. Мне кажется это все изза количества этих обработчиков. На даный момент в проге таких уже 6 штук. Где-то они между собой не дружат. Буду по одному останавливать.

За ссылку благодарен. Спасибо.
Странно, ведь одно приложение - одна очередь сообщений. Т.е. должен быть только один такой обработчик. Вы наверное напутали чего-то ?
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему мат процессор не считает точно sin(pi) = 0? FPU128bit Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 27.10.2009 17:03
Двухядерный процессор russian-stalker Общие вопросы Delphi 2 29.09.2009 23:49
Как узнать, загружен ли Dot.net MAcK Общие вопросы Delphi 8 19.02.2009 09:48
Процессор subsonic Общие вопросы Delphi 10 19.06.2008 11:37
виртуальный процессор darkstoun Помощь студентам 3 23.11.2007 21:12