У вас есть несколько решений.Если вы действительно хотите использовать класс Thread, вы можете вызвать метод Join, но это заблокирует поток пользовательского интерфейса, что не очень хорошо.Вы также можете вызвать метод Invoke вашей формы сразу после цикла «for», так что
void run()
{
for (int i = 0; i < 100000000; i++)
{
}
this.Invoke(new Action(() => this.label1.Text = "done"));
}
Метод invoke необходим, потому что вы находитесь в форме windows, а метод invoke выполнит ваш код наПоток пользовательского интерфейса.
Вместо использования класса Thread вы также можете взглянуть на Delegate.BeginInvoke и System.Threading.Tasks.Они оба более эффективны, так как объединяют потоки и обеспечивают обратный вызов для разделения вашего кода разрыва.