C# Класс GSF.Threading.HalfLock

Provides a light weight exclusive lock that is approximately 2.5 times faster than Monitor. WARNING: This lock should be used in a Using block, and duplicate calls to Lock without releasing will cause a deadlock.
After writing this class I did some review of the methodology. Reviewing this article: http://www.adammil.net/blog/v111_Creating_High-Performance_Locks_and_Lock-free_Code_for_NET_.html Brings up stability issues with the lock. Namely what happens when unhandled exceptions occurs when acquiring and releasing the lock. I have intentionally left out any kind of protection against this as it severly reduces the speed of this code. Therefore do not use this locking method where a Thread.Abort() might be used as a control method.
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
HalfLock ( ) : System

Creates a TinyLock

Приватные методы

Метод Описание
Lock ( ) : HalfLockRelease
LockSlower ( ) : void

A nested call since 99% of the time, there will not be contention. This prevents stack space being used for the SpinLock when its not needed.

Описание методов

HalfLock() публичный Метод

Creates a TinyLock
public HalfLock ( ) : System
Результат System