![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача управления windows [D4, D6, Win95/98, Win2k]
VitaS © (2001-11-14 21:51:00)Мне нужно, чтобы программа выполняля функцию, не забивая все ресурсы процессора, и чтобы параллельно можно было нажимать на другие кнопки формы(например, отмена процедуры). Подскажите плеазееее!!!
Fellomena (2001-11-15 12:22:00) [1]ну приоритет поменьше поставить можно:
procedure TForm1.Button1Click(Sender: TObject);
var
ProcessID : DWORD;
ProcessHandle : THandle;
ThreadHandle : THandle;
begin
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
false,
ProcessID);
SetPriorityClass(ProcessHandle, LOW_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_LOW); // для thread-a может и не LOW, а как-то иначе, точно не помню
end;
Mbo (2001-11-15 06:47:00) [2]1)Application.ProcessMessages
2)запустить в отдельной Thread