폼위에 Button하나, IdTCPServer 올려 놓고 IdTCPServer의 DefaultPort를 아무거나 주고
다음과 같이 코딩합니다.
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPServer1.Active := not IdTCPServer1.Active;
end;
버튼을 누를때마다 Ctrl-Alt-T 를 눌러서 thread의 갯수를 보면
IdTCPServer의 Active를 on/off할때마나 thread가 늘었다 줄었다 하는 것을 볼 수 있습니다.
그런데, 문제는 작업관리자(Task Manager)에서 process 의 thread갯수를 보면
thread갯수가 누적되어 증가하는 현상을 볼 수 있습니다.
참으로 이상한 현상이지요.
그리고 디버깅모드에서 계속 버튼을 눌러 프로그램을 종료할 때
살아 있던 thread들이 한꺼번에 좌르륵 죽는 것을 확인할 수 있습니다.
아무래도 Indy의 버그가 아닐까 하는 생각이 들기도 하구요.
참고로 저는 Indy910B버전을 사용하고 있습니다.
저와 같은 현상을 접해 보신 분들 답변 기다리겠습니다.
그럼 즐코하시구요...
쩝, Indy버전이 워낙 다양해서...
이경문 wrote:
> 폼위에 Button하나, IdTCPServer 올려 놓고 IdTCPServer의 DefaultPort를 아무거나 주고
> 다음과 같이 코딩합니다.
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> IdTCPServer1.Active := not IdTCPServer1.Active;
> end;
>
> 버튼을 누를때마다 Ctrl-Alt-T 를 눌러서 thread의 갯수를 보면
> IdTCPServer의 Active를 on/off할때마나 thread가 늘었다 줄었다 하는 것을 볼 수 있습니다.
> 그런데, 문제는 작업관리자(Task Manager)에서 process 의 thread갯수를 보면
> thread갯수가 누적되어 증가하는 현상을 볼 수 있습니다.
> 참으로 이상한 현상이지요.
> 그리고 디버깅모드에서 계속 버튼을 눌러 프로그램을 종료할 때
> 살아 있던 thread들이 한꺼번에 좌르륵 죽는 것을 확인할 수 있습니다.
> 아무래도 Indy의 버그가 아닐까 하는 생각이 들기도 하구요.
>
> 참고로 저는 Indy910B버전을 사용하고 있습니다.
> 저와 같은 현상을 접해 보신 분들 답변 기다리겠습니다.
> 그럼 즐코하시구요...