Q&A

  • 타이머의 시간??
타이머를 3개 올려놓고 각각 이렇게 코딩해서 실행해보면 시간 카운트가 제각각입니다.
이유가 뭔가요??
타이머의 interval은
Timer1.interval := 25;
Timer2.interval := 1000;
Timer3.interval := 100;
입니다.


<!--CodeS-->
  public
    { Public declarations }
  count : Single;
  count2 : integer;
  count3 : Single;
  end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  count := count + (Timer1.Interval/1000);
  edit1.Text := CurrToStr(count);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
count := 0;
count2 := 0;
count3 := 0;
  Timer1.Enabled := True;
  Timer2.Enabled := True;
  Timer3.Enabled := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
count := 0;
count2 := 0;
count3 := 0;
  Timer1.Enabled := False;
  Timer2.Enabled := False;
  Timer3.Enabled := False;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  count2 := count2 + 1;
  edit2.Text := intToStr(count2);
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
  count3 := count3 + 0.1;
  edit3.Text := CurrToStr(count3);
end;

end.
<!--CodeE-->
1  COMMENTS
  • Profile
    오상현 2007.02.22 00:40
    컴퓨터의 타이머는 CPU의 프로세스를 거쳐 생성이 됩니다.
    그렇기 때문에 각각의 타이머는 별도의 프로세스 이기 때문에
    CPU의 유휴 시간에 따라 달라집니다.
    즉, CPU가 다른 일을 하고 있으면 타이머가 느려집니다.
    그러므로 별도의 타이머는 각각 별도의 프로세스(쓰레드로 이해 하셔도 됩니다) 이기 때문에
    시간이 제각각으로 나옵니다.
    그러므로 타이머 사용시에는 이점 주의 하셔야 됩니다.