Ну, это зависит.Если все потоки вызывают этот метод, передавая тот же глобально видимый объект в качестве параметра, то все они будут видеть одну и ту же блокировку, и проблем не будет.
Если вместо этого каждый поток вызовет этот метод, передав свой собственный объект, тоблокировка бесполезна, потому что все они видят разные замки.Мы должны знать контекст, в котором вызывается метод, чтобы увидеть, является ли это безопасным или нет.
Использование предложенного вами метода синхронизации позволяет обернуть все тело метода в оператор lock(this)
, например:
internal object UpdatePracownik(object employee)
{
lock (this)
{
// code
}
}
, который гарантирует атомарность выполнения несколькими потоками, но может быть слишком грубым для ваших целей и, как правило, не рекомендуется.