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
[62890] 닫기버튼을누르면 멈쳐버립니다.
알론소 [smire4454] 1046 읽음    2010-11-04 18:19
프로그램을 닫기버튼을 누르는데 프로그램이 멈쳐버려요
(그냥 창의 위에 엑스버튼입니다.)
메모리주소못찾는 경고창도뜨구요 별의별창뜨는데
하나하나씩 쫒아가볼려고
하는데 지금 처음문제가

한번누르면 일단 FormCloseQuery함수를
이용해서
타이머연결를 비활성화시키고 통신하는 것들과
연결도 끊고 타이버 스레드도 비활성화시킵니다.
그리고나서 bClose가 ture가 되구
CanClose 가 false가 됩니다

그리고나도 또한번 엑스버튼을누르면
완전히 종료되는건데

void __fastcall TForm_Main::FormClose(TObject *Sender, TCloseAction &Action)
{
    StopDBThread(PROC_INFO_ALL);
    DeleteTCDV();
    map_client.clear();

    DeleteSocket();
}
이문을 타면서 완전히 종료가되어야하는데

갑자기 비동기로 실행하는 동안에는 작업을 수행할 수 없습니다
이렇게뜨면서  DeleteDB()에서 멈춰버립니다.

__fastcall TThread_DB::~TThread_DB()
{
    CloseHandle(hIOEvent);
    hIOEvent = NULL;

    list_Query.clear();

    DeleteDB();
    DeleteCriticalSection(&csLoopQuery);
}

그래서  DeleteDB()로 갔더니 ADOConnection->Close()을 못하고
비동기로 실행하는 동안에는 작업을 수행할 수 없습니다
라는 경고문이 뜨면서 아예 멈춰버리더라구요 꺼지지도않고 실행도안되고

void TThread_DB::DeleteDB()
{

    if ( ADOConnection->Connected )
        ADOConnection->Close();   
  
    delete ADOConnection;
}


제 생각에는 Connection->Close()를 해야하는데
할때 뭐 쿼리문에 있다든지 어떤 수행하라는 명령이나 수행을 해야되서 아니면
어떤이유때문에 Close() 함수를 실행못시키는거같거든요.ㅠㅠ
어떤게 문제인지 힌트라도주시면안댈까요.

+ -

관련 글 리스트
62890 닫기버튼을누르면 멈쳐버립니다. 알론소 1046 2010/11/04
62895     Re:닫기버튼을누르면 멈쳐버립니다. iwillgosu 1068 2010/11/05
62918         Re:Re:닫기버튼을누르면 멈쳐버립니다. 알론소 1152 2010/11/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.