FTimeOutTimer := TTimer.Create(Self);
FTimeOutTimer.Interval := 5000;
FTimeOutTimer.Enabled := False;
FTimeOutTImer.OnTimer := A;
FAIReadTimer := TTimer.Create(Self);
FAIReadTimer.Interval := 250;
FAIReadTimer.Enabled := False;
FAIReadTimer.OnTimer := B;
대충 이런식으로 타이머 정의해서 사용하고 있는데요...
5000 이라는 시간이 되면 A 를 실행하자나요...
근데 그게 실행하는데 꽤 길거든요....
그럼 B 할 시간이 되면 어떻게 되나요?
A 하다가 그냥 B 로 넘어가나요 아님 A 다 맞히고 B 로 가나요?
만약 이런게 4~5게 있다면 어찌 되나요?
쓰레드도 3개 정도 쓰고 있거든요...( 상관있는지 모르겠네요... )
질문을 제대로 했는지도 모르겠네요...
제가 델피초보라....ㅠ.ㅠ
그럼 즐~~~
한넘씩 읽어서 처리되는거 아시죠?
만약 FTimeOutTimer 의 이벤트를 실행하는데 혹은 딴 짓거리(?)를 하는동안
FAIReadTimer 이벤트에 대한 메시지가 2개이상 들어왔을 경우 이전의 메시지는 무시됩니다.
즉 한번만 실행됩니다.
또 긴 일을 해야되는데 (최소한 같은 쓰레드에서) 중간에 메시지 처리 (Application.ProcessMessage) 를 안해주면 그거 다 끝나고 나서 메시지 처리합니다.
즉 하던 일 끝날때까지 절대 호출되지 않습니다. (강제로 호출하지 않는이상)