다음 코드를 고려 원인 완료하고 창은 다른 메시지를 수신 할 수 없습니다. 내가 필요한 것은 crossValidate()
에 대한 새 스레드를 시작하는 것입니다. 그리고 내가 무슨 짓을했는지 정확히 :C++ WINAPI 버튼 클릭에 새로운 스레드는 치명적인 오류
std::thread crossValidateThread; // global
// ...
// ...
// Inside mainOnCommand()
// ...
case IDMC_CROSSVALID: { crossValidateThread = std::thread(crossValidate,hwnd); break; }
// ...
이제 프로그램은 동결되지 않았다 그러나 나는이 새로운 문제가 : crossValidate()
마무리가 실행이되면
1), ROC 곡선이 사라지게 표시하는 창 (지난 2 참조 코드 라인 내부 crossValidate()
)
2) crossValidate()
은 처음에만 작동합니다. 내 말은 처음에 버튼 crossValidate()
이 실행 (여전히 ROC 창이 사라짐)을 클릭했을 때입니다. 그러나 버튼을 한 번 더 누르면 치명적인 오류가 발생하여 처음 실행됩니다.
디버거에서 프로그램을 실행하는 경우 어떤 결과가 발생합니까? – xaxxon
@ xaxxon 글쎄, vs13을 사용하고 치명적인 오류를 말하는 창이 표시됩니다. – DimChtz
@Someprogrammerdude 예, 사라질 것임을 의미하지는 않습니다. 나는 스레드가'crossValidate()'를 호출하지 않을 때 윈도우가 사라지지 않는다는 것을 의미합니다. – DimChtz