Muteksni chiqarish bir necha mikrosekundni oladi - taxminan 50 marta
qulfdan sekinroq .
Mutex sinfining konstruktori mutex kerak yoki yo'qligini aniqlaydi
dastlab chaqiruvchi ipga va uning nomiga egalik qiladi. Muteksda bir nechta mavjud dizaynerlar. Quyida ikkita eng keng tarqalgan konstruktorlar keltirilgan:
umumiy Mutex()
ommaviy Mutex (bool dastlab Owned)
Konstruktorning birinchi shaklida mutex yaratiladi, bu
dastlab hech kim egalik qilmaydi.
Va ikkinchi shaklda, dastlabki holat
Muteks chaqiruvchi
ip tomonidan qabul qilinadi, agar
initialOwned parametri o'rnatilgan bo'lsa
mantiqiy haqiqat. Aks holda, mutexga hech kim egalik qilmaydi.
Muteksni olish uchun dastur kodida qo'ng'iroq
qiling
bu mutex uchun WaitOne() usuli. WaitOne() usuli sinf tomonidan meros qilib olingan Thread.WaitHandle sinfidan mutex. WaitOne() usuli shu qadar kutadi
u chaqirilgan ipning mutexi olinmaydi.
Binobarin, bu usul chaqiruvchi ipning bajarilishini bloklaydi
belgilangan mutex mavjud bo'ladi.
Bu erda yaratish misoli va
mutexdan foydalanish:
sinf OneAtATimeIltimos
{
statik bo'shliq Main()
{
foydalanish (var mutex = yangi Mutex (noto'g'ri, "Mutex1"))
{
agar (!mutex.WaitOne(TimeSpan.FromSeconds(3), false))
{
Console.WriteLine("Boshqa ilova namunasi ishlamoqda. Xayr!");
qaytish;
66