ユーザーの作業項目をスレッド プールのキューに置きます。
Public Shared Function UnsafeQueueUserWorkItem( _
ByVal callBack As WaitCallback, _ ByVal state As Object _) As Boolean
[C#]
public static bool UnsafeQueueUserWorkItem(WaitCallbackcallBack,objectstate);
[C++]
public: static bool UnsafeQueueUserWorkItem(WaitCallback* callBack,Object* state);
[JScript]
public static function UnsafeQueueUserWorkItem(
callBack : WaitCallback,state : Object) : Boolean;
パラメータ
- callBack
スレッド プール内のスレッドが作業項目をピック アップするときに呼び出すデリゲートを表す WaitCallback 。 - state
スレッド プールから処理されるときにデリゲートに渡されるオブジェクト。
戻り値
メソッドが成功した場合は true 。それ以外の場合は false 。
例外
例外の種類 | 条件 |
---|---|
SecurityException | 呼び出し元に、必要なアクセス許可がありません。 |
解説
このバージョンの QueueUserWorkItem は、コール スタックをワーカー スレッドに反映しません。これにより、コードはコール スタックを失ってもかまわないようになり、その結果、セキュリティ特権が向上します。
注意 UnsafeQueueUserWorkItem を使用すると、セキュリティ ホールを意図せず開く可能性があります。コード アクセス セキュリティのアクセス許可チェックは、スタック上のすべての呼び出し元のアクセス許可を基にしています。 UnsafeQueueUserWorkItem を使用して作業がスレッド プール スレッドのキューに格納された場合、スレッド プール スレッドのスタックには、実際の呼び出し元のコンテキストが含まれません。悪意のあるコードはこれを利用してアクセス許可チェックを回避できる可能性があります。
必要条件
プラットフォーム: 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 名前空間 | スレッド プーリング