ThreadPool.UnsafeRegisterWaitForSingleObject Méthode

Définition

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.

Voir aussi

S’applique à