Atualizar etiqueta de outro segmento [duplicado]

Esta pergunta já tem uma resposta aqui:

dição de controle de Winforms de thread cruzado [duplicado] 1 resposta

Utilizo um thread escrito em outra classe para atualizar um rótulo. O rótulo é o conteúdo da classe Winform Mai

 Scanner scanner = new Scanner(ref lblCont);
 scanner.ListaFile = this.listFiles;
 Thread trd = new Thread(new ThreadStart(scanner.automaticScanner));
 trd.IsBackground = true;
 trd.Start();
 while (!trd.IsAlive) ;
 trd.Join();

Como você pode ver, passo a referência do label no construtor da segunda classe. Na segunda classe (Scanner), eu tenho um método chamado "automaticScanner" que deve atualizar o rótulo com este código:

public Scanner(ref ToolStripStatusLabel _lblContatore)
{
        lblCounter= _lblContatore;
}
Thread threadUpdateCounter = new Thread(new ThreadStart(this.UpdateCounter));
threadUpdateCounter.IsBackground = true;
threadUpdateCounter.Start();
while (!threadUpdateCounter .IsAlive) ;
threadUpdateCounter.Join();

private void AggiornaContatore()
{
  this.lblCounter.Text = this.index.ToString();        
}

Recebi este erro na atualização do marcador:

Operação de thread cruzado inválida: o controle 'Main' acessado de um thread que não seja o thread em que foi criado

Eu uso .net 4 com Winform C #.

Muito obrigado pelas respostas.

News: O problema é esta linha:

trd.Join();

Esta linha bloqueia minha GUI e a etiqueta não foi atualizada. Existem métodos para controlar o acabamento do encadeamento e atualizar o rótulo até o final? Obrigad