lock (this) – For and against

Recently reviewing the code I have found the following construction: lock (this) { // Do something } To synchronize access to shared resource object is used, in which this construction occur. Theoretically, this code is correct. What more, there was no problem with deadlock in the program. […]