다음을 통해 공유


SuspendThread 함수(processthreadsapi.h)

지정된 스레드를 일시 중단합니다.

비고

64비트 애플리케이션은 Wow64SuspendThread 함수를 사용하여 WOW64 스레드 스레드를 일시 중단할 수 있습니다.

문법

DWORD SuspendThread(
  [in] HANDLE hThread
);

매개 변수

[in] hThread

일시 중단될 스레드에 대한 핸들입니다.

핸들에 THREAD_SUSPEND_RESUME 액세스 권한이 있어야 합니다. 자세한 내용은 스레드 보안 및 액세스 권한참조하세요.

반환 값

함수가 성공하면 반환 값은 스레드의 이전 일시 중단 횟수입니다. 그렇지 않으면 .입니다 (DWORD) -1. 확장 오류 정보를 얻으려면 GetLastError 함수를 사용합니다.

비고

함수가 성공하면 지정된 스레드의 실행이 일시 중단되고 스레드의 일시 중단 수가 증가합니다. 스레드를 일시 중단하면 스레드가 사용자 모드(애플리케이션) 코드 실행을 중지합니다.

이 함수는 주로 디버거에서 사용하도록 설계되었습니다. 스레드 동기화에 사용할 수 없습니다. 뮤텍스 또는 중요 섹션과 같은 동기화 개체를 소유한 스레드에서 SuspendThread 를 호출하면 호출 스레드가 일시 중단된 스레드가 소유한 동기화 개체를 가져오려고 하면 교착 상태가 발생할 수 있습니다. 이 상황을 방지하려면 디버거가 아닌 애플리케이션 내의 스레드가 다른 스레드에 자체 일시 중단을 신호해야 합니다. 대상 스레드는 이 신호를 감시하고 적절하게 응답하도록 설계되어야 합니다.

각 스레드에는 일시 중단 횟수가 있습니다(최대값은 MAXIMUM_SUSPEND_COUNT). 일시 중단 수가 0보다 크면 스레드가 일시 중단됩니다. 그렇지 않으면 스레드가 일시 중단되지 않고 실행될 수 있습니다. SuspendThread를 호출하면 대상 스레드의 일시 중단 수가 증가합니다. 최대 일시 중단 횟수를 지나서 증가하려고 하면 개수를 증가하지 않고 오류가 발생합니다.

ResumeThread 함수는 일시 중단된 스레드의 일시 중단 수를 감소합니다.

Windows Phone 8.1: 이 함수는 Windows Phone 8.1 이상에서 Windows Phone 스토어 앱에 대해 지원됩니다.

Windows 8.1Windows Server 2012 R2: 이 함수는 Windows 8.1, Windows Server 2012 R2 이상의 Windows 스토어 앱에서 지원됩니다.

요구 사항

요구 사항 가치
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 윈도우즈
헤더 processthreadsapi.h(Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2의 Windows.h 포함)
라이브러리 Kernel32.lib; Windows Phone 8.1의 WindowsPhoneCore.lib
DLL Kernel32.dll; Windows Phone 8.1의 KernelBase.dll

참고하십시오

OpenThread

프로세스 및 스레드 함수

ResumeThread

스레드 실행 일시 중단

스레드