Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Приоритет программы

7.2K
29 ноября 2004 года
L0wFlea_sq
15 / / 23.11.2004
Как можно задать максимальный пиоритет процессорного времени, какой может использовать программа?
Например я хочу чтобы программа работала с загрузкой не более 20% от всей возможности процессора.
Спасибо
301
29 ноября 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by L0wFlea_sq
Как можно задать максимальный пиоритет процессорного времени, какой может использовать программа?
Например я хочу чтобы программа работала с загрузкой не более 20% от всей возможности процессора.
Спасибо


 
Код:
BOOL SetThreadPriority(HANDLE hThread,int nPriority);

Где hThread - хендл твоей главной нити ( =)) ), а nPriority - REALTIME_PRIORITY_CLASS.=)
7.2K
30 ноября 2004 года
L0wFlea_sq
15 / / 23.11.2004
Цитата:
Originally posted by lord Kelvin

 
Код:
BOOL SetThreadPriority(HANDLE hThread,int nPriority);

Где hThread - хендл твоей главной нити ( =)) ), а nPriority - REALTIME_PRIORITY_CLASS.=)



Так, енто я понял, а как я создам свою главную нить или могу определить какая нить используеться?

10
30 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by L0wFlea_sq
Так, енто я понял, а как я создам свою главную нить или могу определить какая нить используеться?


GetCurrentThread()?

301
30 ноября 2004 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by L0wFlea_sq


Так, енто я понял, а как я создам свою главную нить или могу определить какая нить используеться?


SetPriorityClass, еще вот что я нашел.
Итак - основная нить одна, она так сказать сама по себе, ты ее не выбираешь. Как получить на нее указатель - не помню, как узнать hProcess для SetPriorityClass, тоже не помню.=( Поищи в инете инфу о этих функциях. Удачи!

7.2K
06 декабря 2004 года
L0wFlea_sq
15 / / 23.11.2004
Цитата:
Originally posted by lord Kelvin

SetPriorityClass, еще вот что я нашел.
Итак - основная нить одна, она так сказать сама по себе, ты ее не выбираешь. Как получить на нее указатель - не помню, как узнать hProcess для SetPriorityClass, тоже не помню.=( Поищи в инете инфу о этих функциях. Удачи!




Еще один вопрос. Правилен ли следующий код по заданию приоритета:

Код:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    try
    {
         Application->Initialize();
         SetThreadPriority(GetCurrentThread();,16);
         Application->Title = "RO";
         Application->CreateForm(__classid(TForm1), &Form1);
         Application->CreateForm(__classid(TForm2), &Form2);
         Application->CreateForm(__classid(TForm3), &Form3);
         Application->Run();
    }
    catch (Exception &exception)
    {
         Application->ShowException(&exception);
    }
    catch (...)
    {
         try
         {
             throw Exception("");
         }
         catch (Exception &exception)
         {
             Application->ShowException(&exception);
         }
    }
    return 0;
}


А то может я не там вообще задаю приоритет...? С таким кодом у меня программа занимает все процессорное время, а вот от ентого мне хотелось бы избавиться....
259
06 декабря 2004 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by L0wFlea_sq



Еще один вопрос. Правилен ли следующий код по заданию приоритета:
Код:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
    try
    {
         Application->Initialize();
         SetThreadPriority(GetCurrentThread();,16);
         Application->Title = "RO";
         Application->CreateForm(__classid(TForm1), &Form1);
         Application->CreateForm(__classid(TForm2), &Form2);
         Application->CreateForm(__classid(TForm3), &Form3);
         Application->Run();
    }
    catch (Exception &exception)
    {
         Application->ShowException(&exception);
    }
    catch (...)
    {
         try
         {
             throw Exception("");
         }
         catch (Exception &exception)
         {
             Application->ShowException(&exception);
         }
    }
    return 0;
}


А то может я не там вообще задаю приоритет...? С таким кодом у меня программа занимает все процессорное время, а вот от ентого мне хотелось бы избавиться....



Я не очень понял, что значит все процессорное время? И как может быть не запущено больше ни одного процесса? Или нужно чтобы приложение честно молчало 4/5 отведенного ему системой кванта времени. Тогда это не имеет ни какого отношения к приоритетам, ибо в Виндоус фактическое время использования процессора не зависит напрямую от приоритета. Точнее зависит, но ежели в системе всего один активный процесс, который все время что-то считает, то и все процессороное время будет его. Только я как-тот слабо представляю такую конфу системы. А запусти 5 своих приложений и добъешся того, что каждое из них будет занимать (очень приблизительно) по 20% времени процессора.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог