The .NET Framework also provides lightweight synchronization primitives, which are better in performance than their counterparts. They avoid dependency on kernel objects such as wait handles wherever possible, so they only work inside the process. These primitives should be used when the thread's wait time is short. We can divide them into two categories, both of which we'll look at in this section.
Lightweight synchronization primitives
Slim locks
Slim locks are slim implementations of legacy synchronization primitives that can improve performance by reducing overheads.
The following table shows the legacy synchronization primitives and their slim counterparts:
Let's try to learn more about slim locks.
...