
Добрый день.
Есть задача: проверить введенное пользователем число на простоту (является оно простым или составным, алгоритм проверки значения не имеет). Пользователь вводит число в textBox и нажимает кнопку "Проверить". Во второй textBox выводится результат проверки: простое число или составное, а также затраченное на проверку время (формат не важен).
Проблема следующая: после включения таймера, пока работает цикл проверки, не вызывается событие timer1_Tick().
Пробовал ставить разный интервал таймера (от 1 до 1000). Проверял большие числа (1125899839733759 и т.д.), т.е. проблема не в том, что проверка идет быстрее чем "Тик" таймера.
Мне кажется, что решение довольно простое, но не могу его найти.
Заранее спасибо за помощь.
Код программы:
```
//Проверяемое число
Int64 x = 0;
//Переменная для таймера
int secondsCounter = 0;
private void buttonCheck_Click(object sender, EventArgs e)
{
x = Convert.ToInt64(textBoxInput.Text);
secondsCounter = 0;
textBoxOutput.Text = "";
int i; //Счетчик цикла
textBoxOutput.Text += "Начало проверки..." + Environment.NewLine;
timer1.Start(); //Запустили таймер
for (i = 2; i <= Math.Sqrt(x); i++)
{
if (x % i == 0)
{
timer1.Stop(); //Останавливаем таймер
textBoxOutput.Text += "Проверка завершена." + Environment.NewLine;
textBoxOutput.Text += "Число не является простым." + Environment.NewLine;
textBoxOutput.Text += "Затраченное на проверку время: " + Convert.ToString(secondsCounter) + " секунд.";
return;
}
}
timer1.Stop(); //Останавливаем таймер
textBoxOutput.Text += "Проверка завершена." + Environment.NewLine;
textBoxOutput.Text += "Число является простым." + Environment.NewLine;
textBoxOutput.Text += "Затраченное на проверку время: " + Convert.ToString(secondsCounter) + " секунд.";
}
private void timer1_Tick(object sender, EventArgs e)
{
secondsCounter += 1;
}
```


