Member 13949000 Ответов: 2

Заставьте таймер сделать что-то один раз, а затем остановиться...


Привет, ребята. Как я могу сделать так, чтобы мой timer1 проверял, есть ли файлы с определенным расширением на рабочем столе, и если есть, я хочу, чтобы timer1 запустил timer2 и сделал действие один раз, а затем я хочу, чтобы timer2 остановился.

Вот мой код до сих пор... как вы можете видеть, у меня есть код для проверки наличия файлов с расширениями ".rtf" на рабочем столе, и если он существует, таймер 1 запустит таймер 2, который запустит действие. Но, как вы, возможно, уже поняли, я хочу, чтобы действие было сделано один раз, а затем я хочу, чтобы таймер остановился.

private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Start();
        }
private void timer1_Tick(object sender, EventArgs e)
        {
            string[] files = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "*.rtf");
if (files.Length > 0)
    {
        timer2.Start();
    }

        }
        private void timer2_Tick(object sender, EventArgs e)
        {
           startAction();
                                
        }


Что я уже пробовал:


2 Ответов

Рейтинг:
1

Dave Kreskowiak

Ну, вы нашли метод Start() таймера, не думаете ли вы, что может быть метод Stop ()? Как вы думаете, где вы должны останавливать каждый таймер, чтобы они не стреляли снова?


BillWoodruff

+5 за использование Сократического метода !

Рейтинг:
0

Richard MacCutchan

Почему вы используете таймеры для выполнения отдельных действий, они не служат никакой цели? Все, что вам нужно, это:

private void Form1_Load(object sender, EventArgs e)
{
    timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
    string[] files = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "*.rtf");
    if (files.Length > 0)
        startAction();  
}

Хотя, я подозреваю, что это не удастся, так как ваш список файлов не передается в систему. startAction метод.