CodeShot
Midسختی 3 از ۵· در 50٪ مصاحبه‌های این حوزه پرسیده شده

چرا از System.Threading.Lock استفاده کنیم؟

نشان کردن

پاسخ کوتاه

نسبت به lock(object) کارایی بهتری در سناریوهای چندنخی دارد و Type Safety بالاتری فراهم می‌کند.

پاسخ کامل

Lock یک نوع اختصاصی برای قفل‌گذاری است که کامپایلر آن را می‌شناسد و بهینه‌تر از قفل‌گذاری روی یک object عمومی عمل می‌کند؛ همچنین از اشتباهاتی مثل قفل‌گذاری تصادفی روی یک آبجکت عمومی جلوگیری می‌کند.

مثال کد

private readonly Lock _lock = new();
lock (_lock) { /* Critical Section */ }