일단 저는 델파이는 전 ~ 혀 모릅니다만,
쓰레드와 타이머는 뗄수 없는 밀접한 관계죠.
정확하게 쓰레드가 일하는 신호(signal)를 타이머가 주는 경우가 많습니다.
일명 periodic thread/task 라고 하죠.
쓰레드에서는 세마포로 타이머의 signal을 기다리고,
김수정님이 예를 든 경우보다는 쓰레드를 만들고 타이머를 추가로 만들어, 타이머에서 주기적인 파일 처리하라는 시그널(세마포)을 만들어 쓰레들에 주기적으로 던져주어 실제 파일 처리는 쓰레드에서 하는 것이 stable 한 방법입니다.
김수정 님이 쓰신 글 :
: 회사에서 큰소리쳐 놓고 대책이 없어 고민하다가 civilian님과 조대현님의 도움으로 문제가 해결되어 깊은 감사를 드립니다.
:
: 자꾸 질문만 하게 되는데요.
:
: 여러 피시에 파일전송을 하는 부분을 쓰레드로 처리했는데요.
: 갑자기 이걸 타이머로 처리하면 어떨까 하는 생각을 하게 되었습니다.
: 사실 civilian님께서 올려주신 소스를 수정해서 간신히 만들긴 했지만
: 짜집기 하는 실력이라 제가 해 놓고도 어렵기는 마찬가지거든요.
: 그래서 타이머를 이용하는것이 더 쉽고 나중에 프로그램을 수정하더라도 이해하기가 쉬울것 같아서요.
:
: 예를들어
: Timer1.enabled=true;
: Timer2.enabled=true;
: 이렇게 해놓고
:
: TForm1.Timer1Timer(Sender: TObject);
: Begin
: Timer1.enabled = False;
: 처리할 내용
: End
:
:
: TForm1.Timer2Timer(Sender: TObject);
: Begin
: Timer2.enabled = False;
: 처리할 내용
: End
:
: 이렇게 해도 쓰레드와 같은 효과가 있지 않을까요?
: 혹시 이렇게 하면 TForm1.Timer1Timer이벤트가 끝난 다음 TForm1.Timer2Timer이벤트가 실행되나요?
:
: 고수님들 조언 부탁드립니다.
:
: 그동안 귀찮은 질문에도 마다하지 않고 도움을 주신 civilian님과 조대현님께 다시한 번 감사드립니다.
|