Alternativa ao Thread.Sleep em C #?

Eu tenho um código que, quando executado, executa uma série de linhas em sequência. Gostaria de adicionar uma pausa no meio.

Atualmente, eu tenho assim

//do work
Thread.Sleep(10800000);
//do work

Isto, no entanto, congela o software e acho que é porque o tempo de sono é muito longo. Pesquisei on-line e encontrei outro trabalho chamado Timer. Alguém pode me mostrar um código de exemplo para o Timer que funciona exatamente como o Thread.sleep?

Agradeço antecipadamente

Edit: Preciso que o software aguarde 3 horas antes de prosseguir com o restante da execução do código. Este software deve se comunicar com as máquinas e não posso deixar o restante do código ser executado enquanto aguardo por 3 hora

questionAnswers(20)

yourAnswerToTheQuestion