Why we cannot use value type in Lock C#. I found some of the reason but it doesnot look more convienecing :

" Remember that when you pass a value type for a parameter of type object, it gets boxed (wrapped) into a reference type. This makes it a brand-new object each time this happens. "

"You cannot lock a value type because it doesn't have a sync root record."