'C# What is sync block index (overhead member of all reference types)

As far as I understand they are mainly used for thread synchronization. For example, when we use "lock" or "Monitor" for blocking other threads, something happens to sync block index member of the object that enters the scope of "lock". As far as I know, labelling occurs. In other words, sync block index gets a value either 0 or 1 like a label indicating that the thread is blocked. Correct me if I am mistaken, and if there is more to it than just thread synchronization, enlighten me.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source