Сравните, используя Thread.Sleep и Timer для отложенного выполнения

У меня есть метод, который должен быть отложен на указанное время.

Должен ли я использовать

Thread thread = new Thread(() => {
    Thread.Sleep(millisecond);
    action();
});
thread.IsBackground = true;
thread.Start();

Или же

Timer timer = new Timer(o => action(), null, millisecond, -1);

Я читал некоторыестатьи об использованииThread.Sleep плохой дизайн. Но я не очень понимаю, почему.

Но для использования Timer у Timer есть метод dispose. Поскольку выполнение отложено, я не знаю, как распорядиться таймером. У вас есть какие-нибудь предложения?

Или, если у вас есть альтернативные коды для отложенного выполнения, также будем благодарны.

Ответы на вопрос(6)

Ваш ответ на вопрос