Обновить ярлык из другого потока [дубликата]

На этот вопрос уже есть ответ:

Cross-Thread Winforms управления редактированием [дубликат] 1 ответ

Я использую запись потока в другом классе для обновления метки. Метка является содержимым класса Winform Main.

 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();

Как видите, я передаю ссылку на метку в конструктор второго класса. Во втором классе (Сканер) у меня есть метод с именем «automaticScanner», который должен обновить метку следующим кодом:

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();        
}

Я получил эту ошибку при обновлении этикетки:

Операция с несколькими потоками недопустима: доступ к элементу управления Main осуществляется из потока, отличного от потока, в котором он был созда

Я использую .net 4 с Winform C #.

Большое спасибо за ответы.

News: проблема в этой строке:

trd.Join();

Эта строка заблокировала мой графический интерфейс, и этикетка не была обновлена. Существуют методы контроля окончания потока и обновления метки до конца? Благодарност

Ответы на вопрос(3)

Ваш ответ на вопрос