|
몇가지 방법이 있네요..
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문안에서 열심히 돌고있는 관계로..
: 어느 함수에서 돌고 있을지 모르는 관계로..
:
: 종료시 강제 종료를 해주어야 할것 같은데 어떻게 해야할지 모르겠네요.
: 아니면 다른 방향의 구성이 있을수 있는지 여러분들의 조언 부탁드립니다.. ^^
|