Я вижу, что для использования объектов, которые не являются потокобезопасными, мы заключаем код в блокировку следующим образом: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Так что же происходит, когда несколько потоков обращаются к одному и тому же коду...