ThreadPool.UnsafeRegisterWaitForSingleObject Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Regisztrál egy meghatalmazottat, hogy várjon, WaitHandlede nem propagálja a hívó vermet a munkavégző szálra.
Túlterhelések
| Name | Description |
|---|---|
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean) |
Regisztrál egy meghatalmazottat, aki megvár egy WaitHandleidőtúllépési értéket megadva TimeSpan . Ez a metódus nem propagálja a hívó vermet a munkavégző szálra. |
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean) |
Regisztrál egy meghatalmazottat, hogy megvárjon egy WaitHandle32 bites aláírt egész számot az időtúllépéshez ezredmásodpercben. Ez a metódus nem propagálja a hívó vermet a munkavégző szálra. |
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean) |
Regisztrál egy meghatalmazottat, hogy megvárjon egy WaitHandle64 bites aláírt egész számot az időtúllépéshez ezredmásodpercben. Ez a metódus nem propagálja a hívó vermet a munkavégző szálra. |
| UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean) |
Regisztrál egy meghatalmazottat, hogy megvárjon egy WaitHandle32 bites aláíratlan egész számot az időkorláthoz ezredmásodpercben. Ez a metódus nem propagálja a hívó vermet a munkavégző szálra. |
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean)
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
Regisztrál egy meghatalmazottat, aki megvár egy WaitHandleidőtúllépési értéket megadva TimeSpan . Ez a metódus nem propagálja a hívó vermet a munkavégző szálra.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, TimeSpan timeout, bool executeOnlyOnce);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, 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);
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);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * TimeSpan * bool -> System.Threading.RegisteredWaitHandle
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éterek
- waitObject
- WaitHandle
A WaitHandle regisztrálandó. Ne használjon másikat WaitHandleMutex.
- callBack
- WaitOrTimerCallback
A paraméter jelzésekor waitObject meghívandó meghatalmazott.
- state
- Object
A meghatalmazottnak átadott objektum.
- timeout
- TimeSpan
Az időtúllépést egy TimeSpan. Ha timeout 0 (nulla), a függvény teszteli az objektum állapotát, és azonnal visszaadja. Ha timeout -1, a függvény időtúllépési időköze soha nem telik el.
- executeOnlyOnce
- Boolean
true annak jelzésére, hogy a szál a meghatalmazott meghívása után már nem fog várni a waitObject paraméteren; false annak jelzésére, hogy az időzítő minden alkalommal alaphelyzetbe áll, amikor a várakozási művelet befejeződik, amíg a várakozási művelet nem lesz regisztrálva.
Válaszok
A RegisteredWaitHandle regisztrált várakozási művelet megszakításához használható objektum.
- Attribútumok
Kivételek
A timeout paraméter kisebb, mint -1.
A timeout paraméter nagyobb, mint az Int32.MaxValue.
A hívó nem rendelkezik a szükséges engedéllyel.
Megjegyzések
A RegisterWaitForSingleObject metódustól UnsafeRegisterWaitForSingleObject eltérően nem propagálja a hívó vermet a munkavégző szálra. Ez lehetővé teszi, hogy a kód elveszítse a hívási vermet, és ezáltal emelje a biztonsági jogosultságait.
Figyelmeztetés
A használat UnsafeRegisterWaitForSingleObject véletlenül megnyithat egy biztonsági lyukat. A kódhozzáférés biztonsági alapja az engedélyeinek ellenőrzése a verem összes hívójának engedélyén. Ha a munka várólistára kerül egy szálkészlet-szálon a használatával UnsafeRegisterWaitForSingleObject, a szálkészlet-szál veremének nem lesz a tényleges hívók környezete. A rosszindulatú kódok kihasználhatják ezt az engedélyellenőrzések elkerülése érdekében.
A MutexwaitObject használata nem biztosít kölcsönös kizárást a visszahívások számára, mivel az alapul szolgáló Windows API az alapértelmezett WT_EXECUTEDEFAULT jelzőt használja, így minden visszahívás külön szálkészlet-szálon lesz elküldve.
Ha befejezte a RegisteredWaitHandle metódus által visszaadott metódus használatát, hívja meg a metódust RegisteredWaitHandle.Unregister a várakozási leíróra mutató hivatkozások kiadásához. Javasoljuk, hogy mindig hívja meg a RegisteredWaitHandle.Unregister metódust, még akkor is, ha megadjatrue.executeOnlyOnce A szemétgyűjtés hatékonyabban működik, ha nem a RegisteredWaitHandle.Unregister regisztrált várakozási leíró véglegesítőjétől függően hívja meg a metódust.
Lásd még
A következőre érvényes:
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean)
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
Regisztrál egy meghatalmazottat, hogy megvárjon egy WaitHandle32 bites aláírt egész számot az időtúllépéshez ezredmásodpercben. Ez a metódus nem propagálja a hívó vermet a munkavégző szálra.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, int millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, 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);
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);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int * bool -> System.Threading.RegisteredWaitHandle
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éterek
- waitObject
- WaitHandle
A WaitHandle regisztrálandó. Ne használjon másikat WaitHandleMutex.
- callBack
- WaitOrTimerCallback
A paraméter jelzésekor waitObject meghívandó meghatalmazott.
- state
- Object
A meghatalmazottnak átadott objektum.
- millisecondsTimeOutInterval
- Int32
Az időtúllépés ezredmásodpercben. Ha a millisecondsTimeOutInterval paraméter 0 (nulla), a függvény teszteli az objektum állapotát, és azonnal visszaadja. Ha millisecondsTimeOutInterval -1, a függvény időtúllépési időköze soha nem telik el.
- executeOnlyOnce
- Boolean
true annak jelzésére, hogy a szál a meghatalmazott meghívása után már nem fog várni a waitObject paraméteren; false annak jelzésére, hogy az időzítő minden alkalommal alaphelyzetbe áll, amikor a várakozási művelet befejeződik, amíg a várakozási művelet nem lesz regisztrálva.
Válaszok
A RegisteredWaitHandle regisztrált várakozási művelet megszakításához használható objektum.
- Attribútumok
Kivételek
A millisecondsTimeOutInterval paraméter kisebb, mint -1.
A hívó nem rendelkezik a szükséges engedéllyel.
Megjegyzések
A RegisterWaitForSingleObject metódustól UnsafeRegisterWaitForSingleObject eltérően nem propagálja a hívó vermet a munkavégző szálra. Ez lehetővé teszi, hogy a kód elveszítse a hívási vermet, és ezáltal emelje a biztonsági jogosultságait.
Figyelmeztetés
A használat UnsafeRegisterWaitForSingleObject véletlenül megnyithat egy biztonsági lyukat. A kódhozzáférés biztonsági alapja az engedélyeinek ellenőrzése a verem összes hívójának engedélyén. Ha a munka várólistára kerül egy szálkészlet-szálon a használatával UnsafeRegisterWaitForSingleObject, a szálkészlet-szál veremének nem lesz a tényleges hívók környezete. A rosszindulatú kódok kihasználhatják ezt az engedélyellenőrzések elkerülése érdekében.
A MutexwaitObject használata nem biztosít kölcsönös kizárást a visszahívások számára, mivel az alapul szolgáló Windows API az alapértelmezett WT_EXECUTEDEFAULT jelzőt használja, így minden visszahívás külön szálkészlet-szálon lesz elküldve.
Ha befejezte a RegisteredWaitHandle metódus által visszaadott metódus használatát, hívja meg a metódust RegisteredWaitHandle.Unregister a várakozási leíróra mutató hivatkozások kiadásához. Javasoljuk, hogy mindig hívja meg a RegisteredWaitHandle.Unregister metódust, még akkor is, ha megadjatrue.executeOnlyOnce A szemétgyűjtés hatékonyabban működik, ha nem a RegisteredWaitHandle.Unregister regisztrált várakozási leíró véglegesítőjétől függően hívja meg a metódust.
Lásd még
A következőre érvényes:
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean)
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
Regisztrál egy meghatalmazottat, hogy megvárjon egy WaitHandle64 bites aláírt egész számot az időtúllépéshez ezredmásodpercben. Ez a metódus nem propagálja a hívó vermet a munkavégző szálra.
public:
static System::Threading::RegisteredWaitHandle ^ UnsafeRegisterWaitForSingleObject(System::Threading::WaitHandle ^ waitObject, System::Threading::WaitOrTimerCallback ^ callBack, System::Object ^ state, long millisecondsTimeOutInterval, bool executeOnlyOnce);
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, 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);
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);
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * int64 * bool -> System.Threading.RegisteredWaitHandle
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éterek
- waitObject
- WaitHandle
A WaitHandle regisztrálandó. Ne használjon másikat WaitHandleMutex.
- callBack
- WaitOrTimerCallback
A paraméter jelzésekor waitObject meghívandó meghatalmazott.
- state
- Object
A meghatalmazottnak átadott objektum.
- millisecondsTimeOutInterval
- Int64
Az időtúllépés ezredmásodpercben. Ha a millisecondsTimeOutInterval paraméter 0 (nulla), a függvény teszteli az objektum állapotát, és azonnal visszaadja. Ha millisecondsTimeOutInterval -1, a függvény időtúllépési időköze soha nem telik el.
- executeOnlyOnce
- Boolean
true annak jelzésére, hogy a szál a meghatalmazott meghívása után már nem fog várni a waitObject paraméteren; false annak jelzésére, hogy az időzítő minden alkalommal alaphelyzetbe áll, amikor a várakozási művelet befejeződik, amíg a várakozási művelet nem lesz regisztrálva.
Válaszok
A RegisteredWaitHandle regisztrált várakozási művelet megszakításához használható objektum.
- Attribútumok
Kivételek
A millisecondsTimeOutInterval paraméter kisebb, mint -1.
A hívó nem rendelkezik a szükséges engedéllyel.
Megjegyzések
A RegisterWaitForSingleObject metódustól UnsafeRegisterWaitForSingleObject eltérően nem propagálja a hívó vermet a munkavégző szálra. Ez lehetővé teszi, hogy a kód elveszítse a hívási vermet, és ezáltal emelje a biztonsági jogosultságait.
Figyelmeztetés
A használat UnsafeRegisterWaitForSingleObject véletlenül megnyithat egy biztonsági lyukat. A kódhozzáférés biztonsági alapja az engedélyeinek ellenőrzése a verem összes hívójának engedélyén. Ha a munka várólistára kerül egy szálkészlet-szálon a használatával UnsafeRegisterWaitForSingleObject, a szálkészlet-szál veremének nem lesz a tényleges hívók környezete. A rosszindulatú kódok kihasználhatják ezt az engedélyellenőrzések elkerülése érdekében.
A MutexwaitObject használata nem biztosít kölcsönös kizárást a visszahívások számára, mivel az alapul szolgáló Windows API az alapértelmezett WT_EXECUTEDEFAULT jelzőt használja, így minden visszahívás külön szálkészlet-szálon lesz elküldve.
Ha befejezte a RegisteredWaitHandle metódus által visszaadott metódus használatát, hívja meg a metódust RegisteredWaitHandle.Unregister a várakozási leíróra mutató hivatkozások kiadásához. Javasoljuk, hogy mindig hívja meg a RegisteredWaitHandle.Unregister metódust, még akkor is, ha megadjatrue.executeOnlyOnce A szemétgyűjtés hatékonyabban működik, ha nem a RegisteredWaitHandle.Unregister regisztrált várakozási leíró véglegesítőjétől függően hívja meg a metódust.
Lásd még
A következőre érvényes:
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
- Forrás:
- ThreadPoolWorkQueue.cs
Fontos
Ez az API nem CLS-kompatibilis.
Regisztrál egy meghatalmazottat, hogy megvárjon egy WaitHandle32 bites aláíratlan egész számot az időkorláthoz ezredmásodpercben. Ez a metódus nem propagálja a hívó vermet a munkavégző szálra.
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)]
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public static System.Threading.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle waitObject, System.Threading.WaitOrTimerCallback callBack, object? state, uint 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)]
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)>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
static member UnsafeRegisterWaitForSingleObject : System.Threading.WaitHandle * System.Threading.WaitOrTimerCallback * obj * uint32 * bool -> System.Threading.RegisteredWaitHandle
[<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éterek
- waitObject
- WaitHandle
A WaitHandle regisztrálandó. Ne használjon másikat WaitHandleMutex.
- callBack
- WaitOrTimerCallback
A paraméter jelzésekor waitObject meghívandó meghatalmazott.
- state
- Object
A meghatalmazottnak átadott objektum.
- millisecondsTimeOutInterval
- UInt32
Az időtúllépés ezredmásodpercben. Ha a millisecondsTimeOutInterval paraméter 0 (nulla), a függvény teszteli az objektum állapotát, és azonnal visszaadja. Ha millisecondsTimeOutInterval -1, a függvény időtúllépési időköze soha nem telik el.
- executeOnlyOnce
- Boolean
true annak jelzésére, hogy a szál a meghatalmazott meghívása után már nem fog várni a waitObject paraméteren; false annak jelzésére, hogy az időzítő minden alkalommal alaphelyzetbe áll, amikor a várakozási művelet befejeződik, amíg a várakozási művelet nem lesz regisztrálva.
Válaszok
A RegisteredWaitHandle regisztrált várakozási művelet megszakításához használható objektum.
- Attribútumok
Kivételek
A hívó nem rendelkezik a szükséges engedéllyel.
Megjegyzések
A RegisterWaitForSingleObject metódustól UnsafeRegisterWaitForSingleObject eltérően nem propagálja a hívó vermet a munkavégző szálra. Ez lehetővé teszi, hogy a kód elveszítse a hívási vermet, és ezáltal emelje a biztonsági jogosultságait.
Figyelmeztetés
A használat UnsafeRegisterWaitForSingleObject véletlenül megnyithat egy biztonsági lyukat. A kódhozzáférés biztonsági alapja az engedélyeinek ellenőrzése a verem összes hívójának engedélyén. Ha a munka várólistára kerül egy szálkészlet-szálon a használatával UnsafeRegisterWaitForSingleObject, a szálkészlet-szál veremének nem lesz a tényleges hívók környezete. A rosszindulatú kódok kihasználhatják ezt az engedélyellenőrzések elkerülése érdekében.
A MutexwaitObject használata nem biztosít kölcsönös kizárást a visszahívások számára, mivel az alapul szolgáló Windows API az alapértelmezett WT_EXECUTEDEFAULT jelzőt használja, így minden visszahívás külön szálkészlet-szálon lesz elküldve.
Ha befejezte a RegisteredWaitHandle metódus által visszaadott metódus használatát, hívja meg a metódust RegisteredWaitHandle.Unregister a várakozási leíróra mutató hivatkozások kiadásához. Javasoljuk, hogy mindig hívja meg a RegisteredWaitHandle.Unregister metódust, még akkor is, ha megadjatrue.executeOnlyOnce A szemétgyűjtés hatékonyabban működik, ha nem a RegisteredWaitHandle.Unregister regisztrált várakozási leíró véglegesítőjétől függően hívja meg a metódust.