指定したデリゲートをスレッド プールのキューに置きます。
Overloads Public Shared Function UnsafeRegisterWaitForSingleObject( _
_
ByVal waitObject As WaitHandle, _ ByVal callBack As WaitOrTimerCallback, _ ByVal state As Object, _ ByVal millisecondsTimeOutInterval As Integer, _ ByVal executeOnlyOnce As Boolean _) As RegisteredWaitHandle
[C#]
public static RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(WaitHandlewaitObject,WaitOrTimerCallbackcallBack,objectstate,intmillisecondsTimeOutInterval,boolexecuteOnlyOnce);
[C++]
public: static RegisteredWaitHandle* UnsafeRegisterWaitForSingleObject(WaitHandle* waitObject,WaitOrTimerCallback* callBack,Object* state,intmillisecondsTimeOutInterval,boolexecuteOnlyOnce);
[JScript]
public static function UnsafeRegisterWaitForSingleObject(
waitObject : WaitHandle,callBack : WaitOrTimerCallback,state : Object,millisecondsTimeOutInterval : int,executeOnlyOnce : Boolean) : RegisteredWaitHandle;
パラメータ
- waitObject
登録する WaitHandle 。 - callBack
waitObject パラメータが通知されたときに呼び出すデリゲート。 - state
デリゲートに渡されたオブジェクト。 - millisecondsTimeOutInterval
ミリ秒単位のタイムアウト。 millisecondsTimeOutInterval パラメータが 0 の場合、関数はオブジェクトの状態をテストして、すぐに返します。 millisecondsTimeOutInterval が -1 の場合、関数のタイムアウト間隔が経過することはありません。 - executeOnlyOnce
デリゲートの呼び出し後、スレッドが waitObject パラメータを待機しなくなる場合は true 。待機が登録解除されるまでは、待機操作が完了するたびにタイマをリセットする場合は false 。
戻り値
登録された待機操作をキャンセルするために使用できる RegisteredWaitHandle オブジェクト。
例外
| 例外の種類 | 条件 |
|---|---|
| ArgumentOutOfRangeException | millisecondsTimeOutInterval パラメータが -1 未満です。 |
| SecurityException | 呼び出し元に、必要なアクセス許可がありません。 |
解説
このバージョンの RegisterWaitForSingleObject は、コール スタックをワーカー スレッドに反映しません。これにより、コードはコール スタックを失ってもかまわないようになり、その結果、セキュリティ特権が向上します。
注意 UnsafeRegisterWaitForSingleObject を使用すると、意図しないセキュリティ ホールを開く可能性があります。コード アクセス セキュリティのアクセス許可チェックは、スタック上のすべての呼び出し元のアクセス許可を基にしています。 UnsafeRegisterWaitForSingleObject を使用して作業がスレッド プールのスレッドのキューに格納された場合、スレッド プールのスレッドのスタックには、実際の呼び出し元のコンテキストが含まれません。悪意のあるコードはこれを利用してアクセス許可チェックを回避できる可能性があります。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- SecurityPermission (証拠の提供、およびポリシーの表示と変更用)。 SecurityPermissionFlag.ControlEvidence 、 SecurityPermissionFlag.ControlPolicy (関連する列挙体)
参照
ThreadPool クラス | ThreadPool メンバ | System.Threading 名前空間 | ThreadPool.UnsafeRegisterWaitForSingleObject オーバーロードの一覧 | スレッド プーリング