ThreadPool.UnsafeRegisterWaitForSingleObject Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir temsilcisini beklemesi için WaitHandlekaydeder, ancak çağıran yığını çalışan iş parçacığına yaymaz.
Aşırı Yüklemeler
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean) |
Beklemesi için WaitHandlebir temsilci kaydeder ve zaman aşımı için bir TimeSpan değer belirtir. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz. |
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean) |
Milisaniye cinsinden zaman aşımı için 32 bit imzalı tamsayı kullanarak bir temsilciyi beklemesi için WaitHandlekaydeder. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz. |
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean) |
Milisaniye cinsinden zaman aşımı için 64 bit imzalı bir tamsayı belirterek bir temsilciyi beklemesi için WaitHandlekaydeder. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz. |
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean) |
Zaman aşımı için milisaniye cinsinden 32 bit işaretsiz bir tamsayı belirterek bir temsilciyi beklemesi için WaitHandlekaydeder. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz. |
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, TimeSpan, Boolean)
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
Beklemesi için WaitHandlebir temsilci kaydeder ve zaman aşımı için bir TimeSpan değer belirtir. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz.
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
Parametreler
- waitObject
- WaitHandle
WaitHandle Kaydedilecek. dışında Mutexbir WaitHandle kullanın.
- callBack
- WaitOrTimerCallback
Parametreye sinyal verildiğinde waitObject
çağrılacak temsilci.
- state
- Object
Temsilciye geçirilen nesne.
- timeout
- TimeSpan
bir ile TimeSpantemsil edilen zaman aşımı. 0 (sıfır) ise timeout
işlev nesnenin durumunu sınar ve hemen döndürür.
timeout
-1 ise, işlevin zaman aşımı aralığı hiç bitmeyecektir.
- executeOnlyOnce
- Boolean
true
temsilci çağrıldıktan sonra iş parçacığının parametresinde waitObject
artık beklemeyeceğini belirtmek için; false
bekleme işlemi tamamlanana kadar süreölçerin kaydı kaldırılana kadar sıfırlandığını belirtmek için.
Döndürülenler
RegisteredWaitHandle Kayıtlı bekleme işlemini iptal etmek için kullanılabilecek nesne.
- Öznitelikler
Özel durumlar
timeout
Parametresi -1'den küçük.
timeout
Parametresi Int32.MaxValue değerinden büyüktür.
Çağıranın gerekli izni yok.
Açıklamalar
yönteminin RegisterWaitForSingleObject aksine, UnsafeRegisterWaitForSingleObject çağıran yığını çalışan iş parçacığına yaymaz. Bu, kodun çağrı yığınını kaybetmesine ve böylece güvenlik ayrıcalıklarını yükseltmesine olanak tanır.
Dikkat
kullanmak UnsafeRegisterWaitForSingleObject istemeden bir güvenlik deliği açabilir. Kod erişim güvenliği, izin denetimlerini yığındaki tüm çağıranların izinlerine dayandırmaktadır. İş, kullanılarak UnsafeRegisterWaitForSingleObjectbir iş parçacığı havuzu iş parçacığında kuyruğa alındığında, iş parçacığı havuzu iş parçacığı yığını gerçek çağıranların bağlamını içermez. Kötü amaçlı kod, izin denetimlerini önlemek için bu koddan yararlanabilir.
Mutex temel alınan Windows API'sinde varsayılan WT_EXECUTEDEFAULT
bayrak kullanıldığından, için waitObject
kullanılması geri çağırmalar için karşılıklı dışlama sağlamaz, bu nedenle her geri çağırma ayrı bir iş parçacığı havuzu iş parçacığına gönderilir.
Bu yöntem tarafından döndürülen öğesini kullanmayı RegisteredWaitHandle bitirdiğinizde, bekleme tutamacını RegisteredWaitHandle.Unregister serbest bırakmak için yöntemini çağırın. için executeOnlyOnce
belirtseniz true
bile yöntemini her zaman çağırmanızı RegisteredWaitHandle.Unregister öneririz. Kayıtlı bekleme tutamacının sonlandırıcısı RegisteredWaitHandle.Unregister yerine yöntemini çağırırsanız çöp toplama daha verimli çalışır.
Ayrıca bkz.
Şunlara uygulanır
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int32, Boolean)
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
Milisaniye cinsinden zaman aşımı için 32 bit imzalı tamsayı kullanarak bir temsilciyi beklemesi için WaitHandlekaydeder. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz.
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
Parametreler
- waitObject
- WaitHandle
WaitHandle Kaydedilecek. dışında Mutexbir WaitHandle kullanın.
- callBack
- WaitOrTimerCallback
Parametreye sinyal verildiğinde waitObject
çağrılacak temsilci.
- state
- Object
Temsilciye geçirilen nesne.
- millisecondsTimeOutInterval
- Int32
Milisaniye cinsinden zaman aşımı.
millisecondsTimeOutInterval
Parametre 0 (sıfır) ise işlev nesnenin durumunu sınar ve hemen döndürür.
millisecondsTimeOutInterval
-1 ise, işlevin zaman aşımı aralığı hiç bitmeyecektir.
- executeOnlyOnce
- Boolean
true
temsilci çağrıldıktan sonra iş parçacığının parametresinde waitObject
artık beklemeyeceğini belirtmek için; false
bekleme işlemi tamamlanana kadar süreölçerin kaydı kaldırılana kadar sıfırlandığını belirtmek için.
Döndürülenler
RegisteredWaitHandle Kayıtlı bekleme işlemini iptal etmek için kullanılabilecek nesne.
- Öznitelikler
Özel durumlar
millisecondsTimeOutInterval
Parametresi -1'den küçük.
Çağıranın gerekli izni yok.
Açıklamalar
yönteminin RegisterWaitForSingleObject aksine, UnsafeRegisterWaitForSingleObject çağıran yığını çalışan iş parçacığına yaymaz. Bu, kodun çağrı yığınını kaybetmesine ve böylece güvenlik ayrıcalıklarını yükseltmesine olanak tanır.
Dikkat
kullanmak UnsafeRegisterWaitForSingleObject istemeden bir güvenlik deliği açabilir. Kod erişim güvenliği, izin denetimlerini yığındaki tüm çağıranların izinlerine dayandırmaktadır. İş, kullanılarak UnsafeRegisterWaitForSingleObjectbir iş parçacığı havuzu iş parçacığında kuyruğa alındığında, iş parçacığı havuzu iş parçacığı yığını gerçek çağıranların bağlamını içermez. Kötü amaçlı kod, izin denetimlerini önlemek için bu koddan yararlanabilir.
Mutex temel alınan Windows API'sinde varsayılan WT_EXECUTEDEFAULT
bayrak kullanıldığından, için waitObject
kullanılması geri çağırmalar için karşılıklı dışlama sağlamaz, bu nedenle her geri çağırma ayrı bir iş parçacığı havuzu iş parçacığına gönderilir.
Bu yöntem tarafından döndürülen öğesini kullanmayı RegisteredWaitHandle bitirdiğinizde, bekleme tutamacını RegisteredWaitHandle.Unregister serbest bırakmak için yöntemini çağırın. için executeOnlyOnce
belirtseniz true
bile yöntemini her zaman çağırmanızı RegisteredWaitHandle.Unregister öneririz. Kayıtlı bekleme tutamacının sonlandırıcısı RegisteredWaitHandle.Unregister yerine yöntemini çağırırsanız çöp toplama daha verimli çalışır.
Ayrıca bkz.
Şunlara uygulanır
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, Int64, Boolean)
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
Milisaniye cinsinden zaman aşımı için 64 bit imzalı bir tamsayı belirterek bir temsilciyi beklemesi için WaitHandlekaydeder. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz.
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
Parametreler
- waitObject
- WaitHandle
WaitHandle Kaydedilecek. dışında Mutexbir WaitHandle kullanın.
- callBack
- WaitOrTimerCallback
Parametreye sinyal verildiğinde waitObject
çağrılacak temsilci.
- state
- Object
Temsilciye geçirilen nesne.
- millisecondsTimeOutInterval
- Int64
Milisaniye cinsinden zaman aşımı.
millisecondsTimeOutInterval
Parametre 0 (sıfır) ise işlev nesnenin durumunu sınar ve hemen döndürür.
millisecondsTimeOutInterval
-1 ise, işlevin zaman aşımı aralığı hiç bitmeyecektir.
- executeOnlyOnce
- Boolean
true
temsilci çağrıldıktan sonra iş parçacığının parametresinde waitObject
artık beklemeyeceğini belirtmek için; false
bekleme işlemi tamamlanana kadar süreölçerin kaydı kaldırılana kadar sıfırlandığını belirtmek için.
Döndürülenler
RegisteredWaitHandle Kayıtlı bekleme işlemini iptal etmek için kullanılabilecek nesne.
- Öznitelikler
Özel durumlar
millisecondsTimeOutInterval
Parametresi -1'den küçük.
Çağıranın gerekli izni yok.
Açıklamalar
yönteminin RegisterWaitForSingleObject aksine, UnsafeRegisterWaitForSingleObject çağıran yığını çalışan iş parçacığına yaymaz. Bu, kodun çağrı yığınını kaybetmesine ve böylece güvenlik ayrıcalıklarını yükseltmesine olanak tanır.
Dikkat
kullanmak UnsafeRegisterWaitForSingleObject istemeden bir güvenlik deliği açabilir. Kod erişim güvenliği, izin denetimlerini yığındaki tüm çağıranların izinlerine dayandırmaktadır. İş, kullanılarak UnsafeRegisterWaitForSingleObjectbir iş parçacığı havuzu iş parçacığında kuyruğa alındığında, iş parçacığı havuzu iş parçacığı yığını gerçek çağıranların bağlamını içermez. Kötü amaçlı kod, izin denetimlerini önlemek için bu koddan yararlanabilir.
Mutex temel alınan Windows API'sinde varsayılan WT_EXECUTEDEFAULT
bayrak kullanıldığından, için waitObject
kullanılması geri çağırmalar için karşılıklı dışlama sağlamaz, bu nedenle her geri çağırma ayrı bir iş parçacığı havuzu iş parçacığına gönderilir.
Bu yöntem tarafından döndürülen öğesini kullanmayı RegisteredWaitHandle bitirdiğinizde, bekleme tutamacını RegisteredWaitHandle.Unregister serbest bırakmak için yöntemini çağırın. için executeOnlyOnce
belirtseniz true
bile yöntemini her zaman çağırmanızı RegisteredWaitHandle.Unregister öneririz. Kayıtlı bekleme tutamacının sonlandırıcısı RegisteredWaitHandle.Unregister yerine yöntemini çağırırsanız çöp toplama daha verimli çalışır.
Ayrıca bkz.
Şunlara uygulanır
UnsafeRegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, Object, UInt32, Boolean)
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
- Kaynak:
- ThreadPoolWorkQueue.cs
Önemli
Bu API, CLS uyumlu değildir.
Zaman aşımı için milisaniye cinsinden 32 bit işaretsiz bir tamsayı belirterek bir temsilciyi beklemesi için WaitHandlekaydeder. Bu yöntem çağıran yığını çalışan iş parçacığına yaymaz.
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
Parametreler
- waitObject
- WaitHandle
WaitHandle Kaydedilecek. dışında Mutexbir WaitHandle kullanın.
- callBack
- WaitOrTimerCallback
Parametreye sinyal verildiğinde waitObject
çağrılacak temsilci.
- state
- Object
Temsilciye geçirilen nesne.
- millisecondsTimeOutInterval
- UInt32
Milisaniye cinsinden zaman aşımı.
millisecondsTimeOutInterval
Parametre 0 (sıfır) ise işlev nesnenin durumunu sınar ve hemen döndürür.
millisecondsTimeOutInterval
-1 ise, işlevin zaman aşımı aralığı hiç bitmeyecektir.
- executeOnlyOnce
- Boolean
true
temsilci çağrıldıktan sonra iş parçacığının parametresinde waitObject
artık beklemeyeceğini belirtmek için; false
bekleme işlemi tamamlanana kadar süreölçerin kaydı kaldırılana kadar sıfırlandığını belirtmek için.
Döndürülenler
RegisteredWaitHandle Kayıtlı bekleme işlemini iptal etmek için kullanılabilecek nesne.
- Öznitelikler
Özel durumlar
Çağıranın gerekli izni yok.
Açıklamalar
yönteminin RegisterWaitForSingleObject aksine, UnsafeRegisterWaitForSingleObject çağıran yığını çalışan iş parçacığına yaymaz. Bu, kodun çağrı yığınını kaybetmesine ve böylece güvenlik ayrıcalıklarını yükseltmesine olanak tanır.
Dikkat
kullanmak UnsafeRegisterWaitForSingleObject istemeden bir güvenlik deliği açabilir. Kod erişim güvenliği, izin denetimlerini yığındaki tüm çağıranların izinlerine dayandırmaktadır. İş, kullanılarak UnsafeRegisterWaitForSingleObjectbir iş parçacığı havuzu iş parçacığında kuyruğa alındığında, iş parçacığı havuzu iş parçacığı yığını gerçek çağıranların bağlamını içermez. Kötü amaçlı kod, izin denetimlerini önlemek için bu koddan yararlanabilir.
Mutex temel alınan Windows API'sinde varsayılan WT_EXECUTEDEFAULT
bayrak kullanıldığından, için waitObject
kullanılması geri çağırmalar için karşılıklı dışlama sağlamaz, bu nedenle her geri çağırma ayrı bir iş parçacığı havuzu iş parçacığına gönderilir.
Bu yöntem tarafından döndürülen öğesini kullanmayı RegisteredWaitHandle bitirdiğinizde, bekleme tutamacını RegisteredWaitHandle.Unregister serbest bırakmak için yöntemini çağırın. için executeOnlyOnce
belirtseniz true
bile yöntemini her zaman çağırmanızı RegisteredWaitHandle.Unregister öneririz. Kayıtlı bekleme tutamacının sonlandırıcısı RegisteredWaitHandle.Unregister yerine yöntemini çağırırsanız çöp toplama daha verimli çalışır.