Есть скрытая форма, на ней таймер, который срабатывает 1 раз в секунду, (это не вирус или воровайка какая), а программа, которая будет отслеживать новые файлы на ftp и загружать на рабочий компьютер, небольшая автоматизация рутины.
Код вроде как простой, но условие НЕ выполняется (в окне редактора, там где указаны строки, подчеркнут желтым цветом, "что это за..." - не знаю).
Стоит скинуть под условие MessageBox, все работает.
int ids = 0;
private void timer1_Tick(object sender, EventArgs e)
{
ids = ids + 1;
MessageBox.Show("я работаю!" + ids.ToString());
if (ids == 2)
{
this.Close();
}
}
Судя по всему, происходит следующее. Вызывается первый тик таймера, увеличивает ids
до 1 и показывает MessageBox
. Теперь код «висит» в функции Show()
.
Пока MessageBox
открыт, проходит несколько секунд. Тем временем приходит второй тик таймера, увеличивает ids
до 2 и показывает второй MessageBox
.
Так же случается и с третьим, возможно четвёртым. Когда вы наконец закрываете все MessageBox
'ы, значение ids
уже стало большим. Условие ids == 2
больше не выполняется.
Когда вы заносите MessageBox.Show
внутрь if
'а, проверка выполняется до ожидания закрытия MessageBox
'а, и всё работает как и ожидалось.
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Итак, у нас есть два класса, реализующих интерфейс IStateRepository: FileRepo and DBRepo (реализация вне контекста)И класс-потребитель:
Есть 2 textBox'а, один 1 другой второйВ них вписываю информацию в первый "Jule" во второй "June"