![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Тормоза и таймер [D7, XP]
Alex_Ford © (2008-11-07 10:05:00)Привет!
Мастера у меня программа выполняет несколько задач. Все задачи выполняет таймер. Но от этого комп сильно тормозит. Используется всего один компонент таймер с интервалом в одну секунду. Что нужно сделать чтобы все работало без тормозов.
С уважением!
sniknik (2008-11-07 11:04:00) [61]> загружает список из файла.
?
> Посмотрите пожалуйста мой код, что не так я сделал?
как минимум ты не загружаешь список из файла...
> Излагай подробно задачу, которую должно решать твое приложение ..
задача - спрятаться от диспетчера, вернее не дать найти в нем себя мешая работе с ним.
-> postmessage(findwindow(nil,pchar('Диспетчер задач Windows'),),WM_CLOSE,0,0);
Сергей М. (2008-11-07 10:52:00) [62]
> что не так я сделал?
Абсолютно все.
Излагай подробно задачу, которую должно решать твое приложение ..
Плохиш (2008-11-07 10:46:00) [63]
> Alex_Ford (07.11.08 10:42) [8]
> Посмотрите пожалуйста мой код, что не так я сделал?
Это не код, а маразм. Советую как 2й пункт в изучении прочитать справку по findwindow, на предмет возвращаемого значения...
1й пункт - прочитать букварь.
Правильный$Вася (2008-11-07 10:44:00) [64]
> Программа при запуске загружает список из файла.Таймер в
> интервале в секунду проверяет эти значения
список чего?
в чем заключается проверка?
Alex_Ford (2008-11-07 10:42:00) [65]Значит, возможно проблема в том, что я не правильно расставляю скобки begin..end
Посмотрите пожалуйста мой код, что не так я сделал?
begin
for i:=0 to checklistbox1.Items.Count-1 do
if not checklistbox1.Checked[i] then exit else
begin
if checkListBox1.Checked[i] = true then
st:= checklistbox1.Items.Strings[i];
if findwindow(nil,pchar(st))<>0 then
postmessage(findwindow(nil,pchar(st),),WM_CLOSE,0,0);
if (form1.CheckBox4.Checked = true) and
(findwindow(nil,pchar(tasklist))<>0) then
begin
postmessage(findwindow(nil,pchar('Диспетчер задач Windows'),),WM_CLOSE,0,0);
end;
begin
if (form1.CheckBox5.Checked = true) and
(form1.CheckBox1.Checked = true) then
begin
form1.RadioButton1.Checked:= true end else
if (form1.CheckBox5.Checked = false) and
(form1.CheckBox1.Checked = true) then
begin
for k:=0 to form1.CheckListBox1.Items.Count-1 do
form1.CheckListBox1.Checked[k]:=true;
end;
if (form1.CheckBox5.Checked = false) and
(form1.MaskEdit1.Text = startgame.Caption)and
(form1.CheckBox2.Checked = true) then
end;
end;
end;
end;
Anatoly Podgoretsky (2008-11-07 10:42:00) [66]Таймер не нагружает процессор.
sniknik (2008-11-07 10:41:00) [67]а смысл проверять? тем более раз в секунду (а сама проверка видимо отрабатывает за 3 :)). просто мониторить изменение файла, ждать событие от системы, и только тогда проверять.
Johnmen (2008-11-07 10:31:00) [68]
> Alex_Ford (07.11.08 10:28) [3]
> таймер нагружает проц
Это ты нагружаешь проц, а не таймер.
Плохиш (2008-11-07 10:31:00) [69]
> Alex_Ford (07.11.08 10:28) [3]
1. Таймер не нагружает систему
2. Систему нагружает код, который проверяет эти значения и если все ОК то вызывает процедуру
PS. Не надо валить свои проблемы на таймеры...
Alex_Ford (2008-11-07 10:28:00) [70]Программа при запуске загружает список из файла.
Таймер в интервале в секунду проверяет эти значения и если все ОК то вызывает процедуру. Список очень большой 1000-1500 записей.
Мастера, подскажите пожалуйста как с потоком тогда работать, если таймер нагружает проц?
clickmaker (2008-11-07 10:18:00) [71]> Все задачи выполняет таймер
за что ж ты его так?
почему не потоки?
Riply (2008-11-07 10:09:00) [72]> [0] Alex_Ford (07.11.08 10:05)
> Все задачи выполняет таймер. Но от этого комп сильно тормозит. Используется всего один компонент таймер с интервалом в одну секунду.
> Что нужно сделать чтобы все работало без тормозов.
Поставить интервал в один час :)
А если серьезно, то от TTimer тормозить ничего не будет.
Что у тебя в нем вызывается ?