Windows C++ 응용 프로그램에서 주 스레드를 일시 중단했다가 다시 시작할 수 있어야합니다. 나는 Windows 용 C++에서 주 스레드 일시 중단 및 재개
handle = GetCurrentThread();
SuspendThread(handle);
을 사용하고 작동 중단하면서 그때는하지 않습니다 재개,
ResumeThread(handle);
를 다시 시작해야된다. 다른 스레드가 일시 중단되고 아무런 문제없이 재개되었지만 기본 스레드와 다른 점이 있습니다.
C# 및 Java에서 많은 스레드를 처리했지만이 작업은 C++에서 처음 수행 한 것으로 상당히 다른 것으로 나타났습니다.
메인 스레드가 일시 중지했다가 다시 시작하려고합니까? 스레드가 중단되어 ResumeThread 호출을 실행할 수 없을 때 어떻게 스레드가 다시 시작할 수 있습니까? – rerun
아니요, SuspendThread 자체를 호출하지만 나중에 ResumeThread가 다른 스레드에 의해 호출됩니다. 디버그 모드에서는 스레드 창에 일시 중단 수를 표시하고 일시 중단이 호출 될 때 1 씩 올라간다가 다시 시작될 때 1 씩 내려 가지 않습니다. –
ResumeThread()는 음수 값을 반환하고, 그렇다면 GetLastError()가 반환하는 값은 무엇입니까? –