ThreadPool.UnsafeRegisterWaitForSingleObject Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Inscrit un délégué pour attendre un WaitHandle, mais ne propage pas la pile appelante vers le thread de travail.
Surcharges
| Nom | Description |
|---|---|
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean) |
Inscrit un délégué pour attendre un WaitHandleentier signé 32 bits en millisecondes. Cette méthode ne propage pas la pile appelante au thread de travail. |
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean) |
Inscrit un délégué pour attendre un WaitHandleentier signé 64 bits en millisecondes. Cette méthode ne propage pas la pile appelante au thread de travail. |
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean) |
Inscrit un délégué pour attendre un WaitHandle, en spécifiant une TimeSpan valeur pour le délai d’attente. Cette méthode ne propage pas la pile appelante au thread de travail. |
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean) |
Inscrit un délégué pour attendre un WaitHandleentier non signé 32 bits pour le délai d’attente en millisecondes. Cette méthode ne propage pas la pile appelante au thread de travail. |
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean)
Inscrit un délégué pour attendre un WaitHandleentier signé 32 bits en millisecondes. Cette méthode ne propage pas la pile appelante au thread de travail.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int * bool -> System.Threading.RegisteredWaitHandle
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, millisecondsTimeOutInterval As Integer, executeOnlyOnce As Boolean) As RegisteredWaitHandle
Paramètres
- waitObject
- WaitHandle
À WaitHandle inscrire. Utilisez un WaitHandle autre que Mutex.
- callBack
- WaitOrTimerCallback
Délégué à appeler lorsque le waitObject paramètre est signalé.
- state
- Object
Objet passé au délégué.
- millisecondsTimeOutInterval
- Int32
Délai d’expiration en millisecondes. Si le millisecondsTimeOutInterval paramètre est égal à 0 (zéro), la fonction teste l’état de l’objet et retourne immédiatement. Si millisecondsTimeOutInterval la valeur est -1, l’intervalle de délai d’attente de la fonction n’est jamais écoulé.
- executeOnlyOnce
- Boolean
true pour indiquer que le thread n’attend plus sur le waitObject paramètre une fois le délégué appelé ; false pour indiquer que le minuteur est réinitialisé chaque fois que l’opération d’attente se termine jusqu’à ce que l’attente soit annulée.
Retours
Objet RegisteredWaitHandle qui peut être utilisé pour annuler l’opération d’attente inscrite.
- Attributs
Exceptions
Le millisecondsTimeOutInterval paramètre est inférieur à -1.
L’appelant n’a pas l’autorisation requise.
Remarques
Contrairement à la RegisterWaitForSingleObject méthode, UnsafeRegisterWaitForSingleObject ne propage pas la pile appelante au thread de travail. Cela permet au code de perdre la pile appelante et ainsi d’élever ses privilèges de sécurité.
Avertissement
L’utilisation UnsafeRegisterWaitForSingleObject pourrait ouvrir par inadvertance un trou de sécurité. La sécurité de l’accès au code base ses contrôles d’autorisation sur les autorisations de tous les appelants sur la pile. Lorsque le travail est mis en file d’attente sur un thread de pool de threads à l’aide UnsafeRegisterWaitForSingleObjectd’un thread de pool de threads, la pile du thread de pool de threads n’aura pas le contexte des appelants réels. Le code malveillant peut être en mesure d’exploiter cela pour éviter les vérifications d’autorisation.
L’utilisation d’un Mutex pour waitObject ne fournit pas d’exclusion mutuelle pour les rappels, car l’API Windows sous-jacente utilise l’indicateur par défaut WT_EXECUTEDEFAULT, de sorte que chaque rappel est distribué sur un thread de pool de threads distinct.
Lorsque vous avez terminé d’utiliser l’élément RegisteredWaitHandle retourné par cette méthode, appelez sa RegisteredWaitHandle.Unregister méthode pour libérer des références au handle d’attente. Nous vous recommandons d’appeler toujours la RegisteredWaitHandle.Unregister méthode, même si vous spécifiez true pour executeOnlyOnce. Le garbage collection fonctionne plus efficacement si vous appelez la RegisteredWaitHandle.Unregister méthode au lieu de dépendre du finaliseur du handle d’attente inscrit.
Voir aussi
S’applique à
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean)
Inscrit un délégué pour attendre un WaitHandleentier signé 64 bits en millisecondes. Cette méthode ne propage pas la pile appelante au thread de travail.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int64 * bool -> System.Threading.RegisteredWaitHandle
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int64 * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, millisecondsTimeOutInterval As Long, executeOnlyOnce As Boolean) As RegisteredWaitHandle
Paramètres
- waitObject
- WaitHandle
À WaitHandle inscrire. Utilisez un WaitHandle autre que Mutex.
- callBack
- WaitOrTimerCallback
Délégué à appeler lorsque le waitObject paramètre est signalé.
- state
- Object
Objet passé au délégué.
- millisecondsTimeOutInterval
- Int64
Délai d’expiration en millisecondes. Si le millisecondsTimeOutInterval paramètre est égal à 0 (zéro), la fonction teste l’état de l’objet et retourne immédiatement. Si millisecondsTimeOutInterval la valeur est -1, l’intervalle de délai d’attente de la fonction n’est jamais écoulé.
- executeOnlyOnce
- Boolean
true pour indiquer que le thread n’attend plus sur le waitObject paramètre une fois le délégué appelé ; false pour indiquer que le minuteur est réinitialisé chaque fois que l’opération d’attente se termine jusqu’à ce que l’attente soit annulée.
Retours
Objet RegisteredWaitHandle qui peut être utilisé pour annuler l’opération d’attente inscrite.
- Attributs
Exceptions
Le millisecondsTimeOutInterval paramètre est inférieur à -1.
L’appelant n’a pas l’autorisation requise.
Remarques
Contrairement à la RegisterWaitForSingleObject méthode, UnsafeRegisterWaitForSingleObject ne propage pas la pile appelante au thread de travail. Cela permet au code de perdre la pile appelante et ainsi d’élever ses privilèges de sécurité.
Avertissement
L’utilisation UnsafeRegisterWaitForSingleObject pourrait ouvrir par inadvertance un trou de sécurité. La sécurité de l’accès au code base ses contrôles d’autorisation sur les autorisations de tous les appelants sur la pile. Lorsque le travail est mis en file d’attente sur un thread de pool de threads à l’aide UnsafeRegisterWaitForSingleObjectd’un thread de pool de threads, la pile du thread de pool de threads n’aura pas le contexte des appelants réels. Le code malveillant peut être en mesure d’exploiter cela pour éviter les vérifications d’autorisation.
L’utilisation d’un Mutex pour waitObject ne fournit pas d’exclusion mutuelle pour les rappels, car l’API Windows sous-jacente utilise l’indicateur par défaut WT_EXECUTEDEFAULT, de sorte que chaque rappel est distribué sur un thread de pool de threads distinct.
Lorsque vous avez terminé d’utiliser l’élément RegisteredWaitHandle retourné par cette méthode, appelez sa RegisteredWaitHandle.Unregister méthode pour libérer des références au handle d’attente. Nous vous recommandons d’appeler toujours la RegisteredWaitHandle.Unregister méthode, même si vous spécifiez true pour executeOnlyOnce. Le garbage collection fonctionne plus efficacement si vous appelez la RegisteredWaitHandle.Unregister méthode au lieu de dépendre du finaliseur du handle d’attente inscrit.
Voir aussi
S’applique à
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean)
Inscrit un délégué pour attendre un WaitHandle, en spécifiant une TimeSpan valeur pour le délai d’attente. Cette méthode ne propage pas la pile appelante au thread de travail.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, TimeSpan timeout, bool executeOnlyOnce);
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, TimeSpan timeout, bool executeOnlyOnce);
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, TimeSpan timeout, bool executeOnlyOnce);
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * TimeSpan * bool -> System.Threading.RegisteredWaitHandle
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * TimeSpan * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, timeout As TimeSpan, executeOnlyOnce As Boolean) As RegisteredWaitHandle
Paramètres
- waitObject
- WaitHandle
À WaitHandle inscrire. Utilisez un WaitHandle autre que Mutex.
- callBack
- WaitOrTimerCallback
Délégué à appeler lorsque le waitObject paramètre est signalé.
- state
- Object
Objet passé au délégué.
- timeout
- TimeSpan
Délai d’attente représenté par un TimeSpan. Si timeout la valeur est 0 (zéro), la fonction teste l’état de l’objet et retourne immédiatement. Si timeout la valeur est -1, l’intervalle de délai d’attente de la fonction n’est jamais écoulé.
- executeOnlyOnce
- Boolean
true pour indiquer que le thread n’attend plus sur le waitObject paramètre une fois le délégué appelé ; false pour indiquer que le minuteur est réinitialisé chaque fois que l’opération d’attente se termine jusqu’à ce que l’attente soit annulée.
Retours
Objet RegisteredWaitHandle qui peut être utilisé pour annuler l’opération d’attente inscrite.
- Attributs
Exceptions
Le timeout paramètre est inférieur à -1.
Le timeout paramètre est supérieur à Int32.MaxValue.
L’appelant n’a pas l’autorisation requise.
Remarques
Contrairement à la RegisterWaitForSingleObject méthode, UnsafeRegisterWaitForSingleObject ne propage pas la pile appelante au thread de travail. Cela permet au code de perdre la pile appelante et ainsi d’élever ses privilèges de sécurité.
Avertissement
L’utilisation UnsafeRegisterWaitForSingleObject pourrait ouvrir par inadvertance un trou de sécurité. La sécurité de l’accès au code base ses contrôles d’autorisation sur les autorisations de tous les appelants sur la pile. Lorsque le travail est mis en file d’attente sur un thread de pool de threads à l’aide UnsafeRegisterWaitForSingleObjectd’un thread de pool de threads, la pile du thread de pool de threads n’aura pas le contexte des appelants réels. Le code malveillant peut être en mesure d’exploiter cela pour éviter les vérifications d’autorisation.
L’utilisation d’un Mutex pour waitObject ne fournit pas d’exclusion mutuelle pour les rappels, car l’API Windows sous-jacente utilise l’indicateur par défaut WT_EXECUTEDEFAULT, de sorte que chaque rappel est distribué sur un thread de pool de threads distinct.
Lorsque vous avez terminé d’utiliser l’élément RegisteredWaitHandle retourné par cette méthode, appelez sa RegisteredWaitHandle.Unregister méthode pour libérer des références au handle d’attente. Nous vous recommandons d’appeler toujours la RegisteredWaitHandle.Unregister méthode, même si vous spécifiez true pour executeOnlyOnce. Le garbage collection fonctionne plus efficacement si vous appelez la RegisteredWaitHandle.Unregister méthode au lieu de dépendre du finaliseur du handle d’attente inscrit.
Voir aussi
S’applique à
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)
Important
Cette API n’est pas conforme CLS.
Inscrit un délégué pour attendre un WaitHandleentier non signé 32 bits pour le délai d’attente en millisecondes. Cette méthode ne propage pas la pile appelante au thread de travail.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, System::UInt32 millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.CLSCompliant(false)]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object state, uint millisecondsTimeOutInterval, bool executeOnlyOnce);
[<System.CLSCompliant(false)>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * uint32 * bool -> System.Threading.RegisteredWaitHandle
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * uint32 * bool -> System.Threading.RegisteredWaitHandle
Public Shared Function UnsafeRegisterWaitForSingleObject (waitObject As WaitHandle, callBack As WaitOrTimerCallback, state As Object, millisecondsTimeOutInterval As UInteger, executeOnlyOnce As Boolean) As RegisteredWaitHandle
Paramètres
- waitObject
- WaitHandle
À WaitHandle inscrire. Utilisez un WaitHandle autre que Mutex.
- callBack
- WaitOrTimerCallback
Délégué à appeler lorsque le waitObject paramètre est signalé.
- state
- Object
Objet passé au délégué.
- millisecondsTimeOutInterval
- UInt32
Délai d’expiration en millisecondes. Si le millisecondsTimeOutInterval paramètre est égal à 0 (zéro), la fonction teste l’état de l’objet et retourne immédiatement. Si millisecondsTimeOutInterval la valeur est -1, l’intervalle de délai d’attente de la fonction n’est jamais écoulé.
- executeOnlyOnce
- Boolean
true pour indiquer que le thread n’attend plus sur le waitObject paramètre une fois le délégué appelé ; false pour indiquer que le minuteur est réinitialisé chaque fois que l’opération d’attente se termine jusqu’à ce que l’attente soit annulée.
Retours
Objet RegisteredWaitHandle qui peut être utilisé pour annuler l’opération d’attente inscrite.
- Attributs
Exceptions
L’appelant n’a pas l’autorisation requise.
Remarques
Contrairement à la RegisterWaitForSingleObject méthode, UnsafeRegisterWaitForSingleObject ne propage pas la pile appelante au thread de travail. Cela permet au code de perdre la pile appelante et ainsi d’élever ses privilèges de sécurité.
Avertissement
L’utilisation UnsafeRegisterWaitForSingleObject pourrait ouvrir par inadvertance un trou de sécurité. La sécurité de l’accès au code base ses contrôles d’autorisation sur les autorisations de tous les appelants sur la pile. Lorsque le travail est mis en file d’attente sur un thread de pool de threads à l’aide UnsafeRegisterWaitForSingleObjectd’un thread de pool de threads, la pile du thread de pool de threads n’aura pas le contexte des appelants réels. Le code malveillant peut être en mesure d’exploiter cela pour éviter les vérifications d’autorisation.
L’utilisation d’un Mutex pour waitObject ne fournit pas d’exclusion mutuelle pour les rappels, car l’API Windows sous-jacente utilise l’indicateur par défaut WT_EXECUTEDEFAULT, de sorte que chaque rappel est distribué sur un thread de pool de threads distinct.
Lorsque vous avez terminé d’utiliser l’élément RegisteredWaitHandle retourné par cette méthode, appelez sa RegisteredWaitHandle.Unregister méthode pour libérer des références au handle d’attente. Nous vous recommandons d’appeler toujours la RegisteredWaitHandle.Unregister méthode, même si vous spécifiez true pour executeOnlyOnce. Le garbage collection fonctionne plus efficacement si vous appelez la RegisteredWaitHandle.Unregister méthode au lieu de dépendre du finaliseur du handle d’attente inscrit.