Thread.Sleep
принимает значение в миллисекундах, а не в секундах, поэтому текущему потоку предписывается ждать только 3,6 секунды. Если вы хотите подождать 10 минут, используйте:
Thread.Sleep(1000 * 60 * 10); // 600,000 ms = 600 sec = 10 min
Однако, вероятно, это неуместное использование Sleep
. Попробуйте вместо этого использовать таймер, чтобы получить что-то вроде:
// Fire SomeAction() every 10 minutes.
Timer timer = new Timer(o => SomeAction(), null, 10 * 60 * 1000, -1);
См. этот поток StackOverflow для получения более подробной информации об этом.