если у вас есть некоторые функции, которые выполняют эту операцию, вы можете установить глобальное логическое значение, которое показывает, когда эта функция закончилась, а затем проверить, завершена ли функция, установить значение индикатора выполнения выше.
private bool functionLoaded = false;
private void first()
{
//some code
functionLoaded = true;
}
private void NumberOfScenariosChanged(Object sender, EventArgs e)
{
if (functionLoaded)
return;
UpdateScenarioDataGrid();
}
Или, если это всегда такзанимает 2 минуты. Вы можете сделать небольшой трюк и создать второй поток, значение которого с каждым прогрессивным моментом увеличивается.Только для пользователя будет показано, что программа не остановлена.