사용자가 응용 프로그램을 종료하려고 할 때 IO (HTTP 호출 등)를 수행하는 중 많은 스레드가있는 C++ Win32 응용 프로그램이 있습니다. 현재, 나는 놀고 모든 스레드가 main
에서 돌아 오기 전에 끝날 때까지 기다린다. 때로는 이것이 내가 원하는 것보다 오래 걸리는 경우도 있습니다. 실제로 나가기 만하면 사용자를 기다리게하는 것이 무의미한 것처럼 보입니다. 그러나 방금 나가서 main
에서 돌아 오면 소멸자가 호출되기 시작하면 오브젝트를 사용하는 스레드가있는 동안 충돌이 발생할 수 있습니다.Win32 앱의 빠른 종료를 어떻게 보장합니까?
이상적으로 미덕의 플라톤 세계에서 가장 좋은 방법은 모든 스레드가 종료 된 다음 정상적으로 종료 될 때까지 기다리는 것입니다. 차세대 실제 솔루션은 무엇입니까? 단순히 스레드를 빠져 나오게하는 것은 옵션이 아닐 수도 있습니다. 목표는 프로세스를 가능한 빨리 종료하여 예를 들어 새 버전을 설치하는 것입니다. 내가하고있는 유일한 디스크 입출력은 트랜잭션 DB에 있기 때문에 플러그를 뽑는 것에 대단히 신경 쓰지는 않습니다.
웃긴 답을하고, 심연을 따라 내려 가면 ... 사람들은 유머 감각이 없습니다 ... – tloach
그래, 상처 받았어. 어쩌면 그들의 스택이 오버플로되었을 수도 있습니다. –
DIGG 또는 Slashdot는 스레드 응용 프로그램의 경우 -----> – jim