Méthode de verrouillage en c#

J'ai une classe avec ces trois méthodes. Cette classe est utilisée par de nombreux fils.
Je voudrais que le Method1 attendre, si Method2 et/ou Method3 sont en cours d'exécution dans tous les threads.
Des suggestions?

public class Class1
{
    public static void Method1() 
    {
        Object lockThis = new Object();

        lock (lockThis)
        {
            //Body function
        }
    }

    public static void Method2() 
    {
         //Body function
    }

    public static void Method3() 
    {
         //Body function
    }
}
Method2 et Method3 peut exécuter simultanée? Le et/ou implique que, d'une certaine façon.

OriginalL'auteur Emanuele Mazzoni | 2013-02-20