指定したスレッドを中断します。
注
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.1 および Windows 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 |
こちらも参照ください
スレッド実行 の中断を する