Почему бы просто не использовать таймер .Включайте его каждые десять минут.
Пример в более конкретной версии является довольно хорошим примером на самом деле
ОБНОВЛЕНИЕ
В вашем обновленном коде я бы изменил его на следующее:
public static System.Timers.Timer aTimer;
...
aTimer = new System.Timers.Timer(50000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.AutoReset = false; //This should be true if you want it actually looping
aTimer.Enabled = true;
Я не вижу причин для цикла while.Я предполагаю, что цикл while не запускается вообще.Кроме того, вам, вероятно, следует установить для AutoReset значение true, чтобы оно продолжалось непрерывно.