C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[61554] Re:Indy10 의 IdTCPServer에서 Disconnect 하는 문제 문의드립니다.
째즈토끼 [jazz16] 1922 읽음    2010-06-15 10:18
Terminate() 후에 종료되기를 기다리는건
WaitFor() 라는 메소드가 있어요..
필요시에 while 문으로 직접 다른일을 하면서 대기할 수도 있지만 Terminated 를 참조해서는 안됩니다.
Terminate() 를 호출하면 Terminated가 TRUE가 됩니다.
그래서 Thread의 Execute 내에서

while (!Terminated)
{
...
}
return;

처럼 사용을 하면 쓰레드 외부에서 Terminate() 함수를 호출하면 Terminated가 TRUE 가 되면서 쓰레드내의 루프에서 빠져나오게 됩니다.

Stop 이란 메소드는 처음보는것같아 찾아보니 인디쓰레드 메소드네요.. Suspend 되든지 Terminate 되든지 둘중 하나를 수행하는 건데, 종료시에는 그건 사용하지 마시고 그냥 Terminate()만 사용하시면 될것 같은데요...


IKG님 님이 쓰신 글 :
: 안녕하세요.
:
: 2009 사용중이고, Indy를 사용해서 만들고 있습니다.
:
: 테스트 삼아 텔넷으로 접속해서 데이터를 받는것은 아주 잘 되는데요,...
:
: 텔넷의 접속을 끊으면 CPU의 부하가 100%에 육박하도록 올라갑니다.
:
: 그러다가, 몇 초 후에,..
:
: ".... too many consecutive exceptions: 'access violation at 0x00000053: read of address 0x00000053..."
:
: 이런 메시지가 뜬 후, 먹통이 되면서 위의 메시지가 정기적으로 반복해서 계속 나옵니다.
:
: 쓰레드 상태를 보니, 죽지 않고 계속 살아 있더군요..
:
: 그래서,  IdTCPServer1Disconnect 부분에,..
:
: ((TIdYarnOfThread*)(AContext->Yarn))->Thread->Stop();
: ((TIdYarnOfThread*)(AContext->Yarn))->Thread->Terminate();
:
: 등등 을 줬는데도,..
:
: 쓰레드가 죽지 않더군요..
:
: 다시 테스트 삼아...
: 아래와 같이 while문을 넣어놓으니깐, CPU 점유율은 올라가지 않고 정상상태인데,...
: 계속 while문 안에만 있습니다...
:
: void __fastcall TfrmMain::IdTCPServer1Disconnect(TIdContext *AContext)
: {
:     ((TIdYarnOfThread*)(AContext->Yarn))->Thread->Stop();
:     ((TIdYarnOfThread*)(AContext->Yarn))->Thread->Terminate();
:    
:     while(((TIdYarnOfThread*)(AContext->Yarn))->Thread->Terminated){
:                ((TIdYarnOfThread*)(AContext->Yarn))->Thread->Terminate();
:     Sleep(1);
:     }
: }
:
:
: 조언 부탁드립니다..ㅠ.ㅠ;...

+ -

관련 글 리스트
61546 Indy10 의 IdTCPServer에서 Disconnect 하는 문제 문의드립니다. IKG님 1655 2010/06/14
61554     Re:Indy10 의 IdTCPServer에서 Disconnect 하는 문제 문의드립니다. 째즈토끼 1922 2010/06/15
61566         Re:Re:Indy10 의 IdTCPServer에서 Disconnect 하는 문제 문의드립니다. IKG님 2125 2010/06/16
61570             Re:Re:Re:Indy10 의 IdTCPServer에서 Disconnect 하는 문제 문의드립니다. IKG님 1905 2010/06/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.