Каким образом можно создать таймер в C#?

Как можно реализовать в C# функцию, которая запускает таймер и вызывает окно сообщения каждый час, и если пользователь не нажимает "OK" в течение минуты, то компьютер выключается?
  • 5 апреля 2024 г. 19:59
Ответы на вопрос 2
Для создания таймера в C# можно использовать класс System.Threading.Timer или класс System.Timers.Timer. 

Вот пример реализации функции в C#, которая запускает таймер и вызывает окно сообщения каждый час, и в случае если пользователь не нажимает "OK" в течение минуты, компьютер выключается:

```csharp
using System;
using System.Threading;
using System.Windows.Forms;

class Program
{
    static Timer timer;

    static void Main()
    {
        timer = new Timer(TimerCallback, null, 0, 3600000); // Запускаем таймер каждый час

        Application.Run(new Form()); // Запускаем UI-приложение для показа сообщения

        timer.Dispose(); // Освобождаем ресурсы таймера
    }

    static void TimerCallback(object state)
    {
        DialogResult result = MessageBox.Show("Нажмите кнопку 'OK' чтобы продолжить. Компьютер будет выключен через 1 минуту.", "Предупреждение", MessageBoxButtons.OKCancel);

        if(result != DialogResult.OK)
        {
            timer.Dispose(); // Остановка таймера

            Thread.Sleep(60000); // Ждем 1 минуту

            // Команда на выключение компьютера
            System.Diagnostics.Process.Start("shutdown", "/s /t 0 /f");
        }
    }
}
```

Этот код создает таймер, который каждый час вызывает функцию `TimerCallback`. В этой функции показывается окно сообщения с предупреждением, что компьютер выключится через 1 минуту, если пользователь не нажмет "OK". Если пользователь не нажимает "OK", то происходит выключение компьютера через 1 минуту.
Похожие вопросы