Для создания таймера в 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 минуту.