Comment exécuter la méthode dans un thread séparé

j'ai trouvé un très bon morceau de code qui fonctionnent tous de la méthode dans le thread séparé.
le code comme suit

private static void Method1()
{
    //Method1 implementation
}

private static void Method2()
{
    //Method2 implementation
}

private static void RunMethodInSeparateThread(Action action)
{
    var thread = new Thread(new ThreadStart(action));
    thread.Start();
}

static void Main(string[] args)
{
    RunMethodInSeparateThread(Method1);
    RunMethodInSeparateThread(Method2);
}

dans ce cas, comment pourrais-je passer le paramètre à la méthode et aussi il pourrait y avoir une situation où Method1 pourraient avoir besoin de 2 paramètre et où Method2 peuvent avoir besoin de 3 paramètre. dans cette situation, comment construire RunMethodInSeparateThread de façon générique qui acceptera de nombreux param et de passer à la méthode. merci de m'aider avec le code. grâce

source d'informationauteur Thomas