다음을 통해 공유


SuspendThread 함수(processthreadsapi.h)

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

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

구문

DWORD SuspendThread(
  [in] HANDLE hThread
);

매개 변수

[in] hThread

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

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

반환 값

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

설명

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

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

각 스레드에는 일시 중단 횟수가 있습니다(최대값은 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 앱]
대상 플랫폼 Windows
헤더 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

스레드 실행 일시 중단

스레드