멀티스레딩을 사용하여 일부 데이터를 얻은 다음 이를 배열에 저장하는 프로그램을 작성했습니다. 그런 다음 콘솔 프로그램을 닫으면 이벤트가 트리거되고 이 이벤트에서 배열의 데이터를 파일에 썼습니다. .
하지만 이 프로그램을 10분 미만 실행하면 파일 쓰기가 정상적으로 되는데, 20분 이상 프로그램을 종료하면 일부 파일만 출력되고 프로그램이 저절로 종료됩니다.
다음은 이러한 장소와 관련된 코드입니다.
이것은 주 함수에서 SetConsoleCtrlHandler에 대한 호출입니다
특정 기능 구현입니다
으아악이 문제를 겪어본 사람이 있나요?
이거 버퍼랑 관련이 있는 건가요? 왜냐하면 직관적으로 시간이 지날수록 더 많은 데이터를 받게 될 수도 있기 때문입니다.
CTRL_CLOSE_EVENT에는 시간 초과 메커니즘이 있으므로 데이터를 쓰는 데 시간이 얼마나 걸리더라도 5초 후에 프로그램이 종료됩니다.
대신 CTRL_C_EVENT를 사용할 수 있습니다.