Comment puis-je mesurer combien de temps l'exécution d'une fonction?

Je veux voir combien de temps l'exécution d'une fonction. J'ai donc ajouté un objet timer sur ma forme, et je suis sorti avec ce code:

private int counter = 0;

//Inside button click I have:
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
Result result = new Result();
result = new GeneticAlgorithms().TabuSearch(parametersTabu, functia);
timer.Stop();

Et:

private void timer_Tick(object sender, EventArgs e)
{
    counter++;
    btnTabuSearch.Text = counter.ToString();
}

Mais c'est sans compter quoi que ce soit. Pourquoi?