Executar a função a cada segundo Visual C #

Eu tenho problemas com o timer. Eu tenho função na função (draw in func)

void func(){

 /*...do something ... */
for(){
   for() {
  /*loop*/

 draw(A,B, Pen);

 }

/*... do something ...*/
  }
}

Esta é a função de desenho

   public void draw1(Point Poc, Point Kra, Pen o) {
      Graphics g = this.CreateGraphics();
      g.DrawLine(o,Poc.X+4, Poc.Y+4,Kra.X+4, Kra.Y+4);
      g.Dispose();
      }

Eu chamo a função 'func' no clique do botão

private void button4_Click(object sender, EventArgs e){

    func();

}

Eu quero chamar a função draw second evry (desenhe a linha a cada segundo). Entre os desenhos, a função precisa continuar trabalhando e calcular = loop e desenhar a próxima linha por algum tempo (intervalo). Eu tentei com

timer1.Tick += new EventHandler(timer1_Tick);

etc ..

private void timer1_Tick(object sender, EventArgs e)
    {
        ...
        draw(A, B, Pen)
    }

etc ..

mas tudo isso interrompe minha função e desenha uma linha aleatória. Eu só quero o tempo (intervalo) entre dois desenhos na função 'func'. Sem temporizador funciona bem, mas desenhe todas as linhas imediatamente, preciso de desenho lento. Felicidades.

questionAnswers(4)

yourAnswerToTheQuestion