Thread safety can make heavy use of a static variable. If you are aiming to lock a section, it makes sense for the variable to be static so that you achieve the aim of locking based on one object. For instance:
private static readonly object _syncLock = new object();
public void CriticalProcess()
{
lock(_syncObject)
{
}
}