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
[26999] Re:[질문]Application->Terminate();와 Form1->Close(); 차이
김성진.kark [kark] 3287 읽음    2003-08-30 11:35
종료하는 것은 동일합니다만, 순서적인 차이가 있습니다.
TApplication은 windows application의 encapsulate 한것입니다.
windows에서는 application을 쓰레드로 관리를 합니다. 즉,
운영체제에서 쓰레드를 생성, 스케쥴링, 제거까지 하는 겁니다.

쓰레드를 제거하기 위해서 호출하는 함수가 Terminate() 입니다.
이 Terminate()는 Main Form이 Close될때, 즉 Close()가 실행될
때 발생하는 WM_QUIT 메세지 이벤트에 의해서 실행됩니다.

정리를 하면 이렇게 됩니다.

Main Form Close --> Close() 호출 --> WM_QUIT 생성 --> Terminate()

그리고 이 과정에서 문제가 발생하는 경우는 대부분 메모리 문제입니다.
해제된 메모리를 다시 해제할려고 한다거나, 다른 쓰레드에서 사용할려는
메모리를 미리 해제시킨다거나 하는 부분입니다.

bluepc 님이 쓰신 글 :
:  작업을 완료하고 종료하는 경우에
:  Application->Terminate();로 끝내는 경우와 Form1->Close();로 끝내는 경우가 있는데요,
:  차이가 무엇인지 궁금해서...
:  그리고 강력한 기능은 무엇인지도...
:  가끔씩 Form1->Close();로 종료하는 경우에 문제가 발생해서...

+ -

관련 글 리스트
26987 [질문]Application->Terminate();와 Form1->Close(); 차이 bluepc 801 2003/08/29
26999     Re:[질문]Application->Terminate();와 Form1->Close(); 차이 김성진.kark 3287 2003/08/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.