![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
real time [D5, WinME, Win2k]
sir_musatov © (2002-04-26 09:14:00)подскажите как установить для программы real time, тоесть чтоб пока она не отработает, ничего другово запустить было нельзя, а что было запущено - "приостановило свою работу" ?
понимаю насколько это не красиво и не вежливо
Vovchik (2002-04-27 12:24:00) [1]> sir_musatov
Вот как надо ставить приоритеты, если у тебя одна нить в процессе:
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Если нитей много, то приоритет моно ставить при их создании.
НО! Помните, что из-за того, что в Win9x кривой шедулер (реализующий невытесняющую многозадачность), то приоритеты под 9x не работают, по крайней мере так, как они должны работать. Приоритеты нормально работают только в NT-based системах.
KilkennyCat (2002-04-27 10:50:00) [2]Посмотри пример создания нитей в делфи. твой процесс будет в теле процедуры .Execute
sir_musatov (2002-04-26 14:07:00) [3]для установки приоретета в хелпе пишут код
var
SecondProcess TMyThread; { TMyThread is a custom descendant of TThread }
begin
SecondProcess := TMyThread.Create(True); { create suspended – secondprocess does not run yet }
SecondProcess.Priority = tpTimeCritical; { set the priority }
SecondProcess.Resume; { now run the thread }
end;
поясните пожалуста что тут к чему, как узнать имя моего процесса ?
KilkennyCat (2002-04-26 11:10:00) [4]ну, я бы сделал так : полноэкранный режим, отлов всех клавиш, и нить с приоритетом реал-тайма. кроме-того, необходимо выкинуть все, что может работать как application.processmessages.
Вот только перерисовка визуальных компонент будет затруднена.