== Why is this an issue?

If the instance representing an exclusively acquired lock is publicly accessible, another thread in another part of the program could accidentally attempt to acquire the same lock. This increases the likelihood of https://en.wikipedia.org/wiki/Deadlock[deadlocks].

For example, a `string` should never be used for locking. When a `string` is https://en.wikipedia.org/wiki/Interning_(computer_science)[interned] by the runtime, it can be shared by multiple threads, breaking the locking mechanism.

Instead, a dedicated private https://learn.microsoft.com/en-us/dotnet/api/system.threading.lock?view=net-9.0[`Lock`] object instance (or `object` instance, for frameworks before .Net 9) should be used for locking. This minimizes access to the lock instance and therefore prevents accidential lock sharing.
