지금 구조가


UI 블락 안걸리게 작업 A,B를 각각의 쓰레드에서 수행하는건데


A는 메인 명령을 수행하고 

B는 A가 하는 작업을 감시하다가 에러가 발생하면 A에 종료 메세지를 보낸 후에 자신도 종료되는거임

아니 정확히 말하면 둘이 종료메세지를 공유하는거라 그냥 종료메세지를 보내서 둘다 종료됨.



근데 이제 여기서 A,B가 그냥 바로 종료되는게 아니라 

작업을 에러가 없는 초기상태로 돌려놓고 재시작되도록 하고 싶음.



일단 제일 간단한건 B가 초기화를 시키고, 종료 시점에서 A만 종료시키고 자기는 A,B를 실행하는 함수를 다시 호출하는건데,

이건 지금 테스트해보니 돌아가긴 함...


근데 쓰레드가 재귀적으로 무한 생성되는거잖아....

뭐 재귀호출이 많아야 두자릿 수일거라 감당 못 할 정도는 아니겠지만 그래도 좀 꺼림칙함.

 



그래서 생각한 해결책은

지금 쓰레드A,B를 실행하는 함수를 WndProc 통해서 핫키로 실행할 수 있도록 해놨으니까,

B가 종료되기 직전에 WndProc을 강제로 발생시키면

자기 쓰레드가 아니라 외부에 새롭게 쓰레드A,B를 생성하고 바로 자신은 종료될테니

뭐 오버플로우같은 문제는 안생기지 않을까... 생각됨.







뭔 이상한 얘기만 한거 같은데 하여간 궁금한거는


WndProc 콜백을 강제로 발생시키는 방법이 있나여? 그렇게 하면 이 문제가 해결되나여?

아니면 이 문제를 해결하는 다른 좋은 방법이 있나여?