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
[45183] Re:무한루푸 실행중인 thread 강제 종료하는 법
넘초보 [mspower] 5215 읽음    2006-06-02 13:35
몇가지 방법이 있네요..

1. 무한루프 안에 루프 탈출을 위한 이벤트 대기를 두는것. WaitForSingleObject, Multi....

2. 커널모드 이벤트 보단, 변수를 두는것.   if(m_bThreadStop == true) break;

3. 무한 루프를 돌고 있는 쓰레드를 강제로 죽이기.(요건 문제가 생길수 있기때문에....)

        HWND hWnd = FindWindow(NULL, "YourProgram");

        if(hWnd){
            GetWindowThreadProcessId(hWnd, &dwPID);
            if(dwPID){
                hdProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
                TerminateProcess(hdProcess, -1);
                WaitForSingleObject(hWnd, INFINITE);
            }
        }

dotori 님이 쓰신 글 :
: embedded f/w를 pc에서 에뮬레이션이라고 표현해야 될지 logic검증을 먼저 pc로 작업하고 있습니다.
: 단순펌웨어 상에서 display의 양이 너무 많은 관계로 세트에서 작업하기전에 선행검증 중입니다.
:
: embedded쪽을 프로그래밍 해보신분은 아시겠지만 대부분 펌웨어 작업은 (OS가 없는경우)
: while문안에서 무한동작을 시키게 되는데요
:
: 이걸 pc에서 동작시키려니 쩝 개념없는 저로서는 난감한 일들이 이렇게 생기네요...
:
: 상화은 다음과 같습니다.
:
: 1. 갱생된 display data를 display영역에 뿌려주는 thread
: 2. test하려는 logic을 실행하는 thread
:
: 이렇게 2개의 thread를 추가해서 동작을 시키는데요..
: 문제는 프로그램 종료시 2번째 thread가 while문안에서 열심히 돌고있는 관계로..
: 어느 함수에서 돌고 있을지 모르는 관계로..
:
: 종료시 강제 종료를 해주어야 할것 같은데 어떻게 해야할지 모르겠네요.
: 아니면 다른 방향의 구성이 있을수 있는지 여러분들의 조언 부탁드립니다.. ^^

+ -

관련 글 리스트
45166 무한루푸 실행중인 thread 강제 종료하는 법 dotori 1560 2006/06/01
45183     Re:무한루푸 실행중인 thread 강제 종료하는 법 넘초보 5215 2006/06/02
45167     Re:무한루푸 실행중인 thread 강제 종료하는 법 박지훈.임프 2704 2006/06/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.