У меня есть c# сервис окон, который должен выполнять запрос базы данных каждые 60 секунд (или независимо от того, что интервал установлен в файле конфигурации). Я использую Thread.sleep (60) в некоторое время цикле для выполнения этого. Существует ли лучший способ сделать это?
Спасибо
Вы можете использовать System.Threading.Timer для запуска вашего кода каждые 60 секунд вместо того, чтобы делать это в спящем потоке.
Это зависит от того, чем вы хотите заниматься. Если вам нужен (более) точный метод, вы можете использовать System.Threading.Timer . Одна вещь о thread.sleep заключается в том, что это действительно "sleepatleastuntil ...". Процессор будет игнорировать ваш поток, пока не истечет время сна. В следующий раз, когда он предоставит приоритет вашему потоку, по истечении времени ожидания он будет.
Обычно это очень близко к желаемому интервалу, но может быть больше. Не уступайте, если вы действительно не собираетесь уступать.
Используйте Таймер , чтобы запускать процесс каждые 60 секунд, а не переводить его в спящий режим.