This feature prevents multiple threads from simultaneously modifying the state of the
resource , by including various classes and data types.

the most common use of thread synchronization is to ensure mutually exclusive access to a shared resource by multiple threads. In the Win32 API, the CRITICAL_SECTION structure and associated functions offers the fastest and most efficient way to synchronize threads for mutually exclusive access when the threads are all running in a single process. The Microsoft .NET Framework doesn't expose a CRITICAL_SECTION structure, but it does offer a similar mechanism allowing mutually exclusive access among a set of threads running in the same process. This mechanism is made possible by way of SyncBlocks and the System.Threading.Monitor class.