Приоритет программы
Например я хочу чтобы программа работала с загрузкой не более 20% от всей возможности процессора.
Спасибо
Как можно задать максимальный пиоритет процессорного времени, какой может использовать программа?
Например я хочу чтобы программа работала с загрузкой не более 20% от всей возможности процессора.
Спасибо
Где hThread - хендл твоей главной нити ( =)) ), а nPriority - REALTIME_PRIORITY_CLASS.=)
Где hThread - хендл твоей главной нити ( =)) ), а nPriority - REALTIME_PRIORITY_CLASS.=)
Так, енто я понял, а как я создам свою главную нить или могу определить какая нить используеться?
Так, енто я понял, а как я создам свою главную нить или могу определить какая нить используеться?
GetCurrentThread()?
Так, енто я понял, а как я создам свою главную нить или могу определить какая нить используеться?
SetPriorityClass, еще вот что я нашел.
Итак - основная нить одна, она так сказать сама по себе, ты ее не выбираешь. Как получить на нее указатель - не помню, как узнать hProcess для SetPriorityClass, тоже не помню.=( Поищи в инете инфу о этих функциях. Удачи!
SetPriorityClass, еще вот что я нашел.
Итак - основная нить одна, она так сказать сама по себе, ты ее не выбираешь. Как получить на нее указатель - не помню, как узнать hProcess для SetPriorityClass, тоже не помню.=( Поищи в инете инфу о этих функциях. Удачи!
Еще один вопрос. Правилен ли следующий код по заданию приоритета:
{
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;
}
А то может я не там вообще задаю приоритет...? С таким кодом у меня программа занимает все процессорное время, а вот от ентого мне хотелось бы избавиться....
Еще один вопрос. Правилен ли следующий код по заданию приоритета:
{
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% времени процессора.