Таймеры
Вы используете Таймеры , когда хотите, чтобы один и тот же код выполнялся несколько раз, с определенным интервалом времени между ними.
RegisterWaitForSingleObject
В документации лучше всего сказано:
Регистрирует делегата, ожидающего WaitHandle .
И WaitHandle
используется, когда вы хотите
ждать эксклюзивного доступа к общим ресурсам.
Если вы 'не ожидая общих ресурсов, тогда это не подходит для вашего варианта использования.
ManualResetEvent
Документация говорит
Представляет событие синхронизации потока, которое при получении сигнала должно быть сброшено вручную.
«Сигнализация» и «сброс» - это то, что должен делать ваш код. Он используется, когда один из ваших потоков должен сообщить другому из ваших потоков, что он может продолжить.
Ваш вариант использования
Вы сказали:
Мне нужно, чтобы мой код выполнялся после ожидания определенного времени.
Если вам не нужно повторять код снова и снова, и вы не ждете общих ресурсов, и выне ожидая другого потока, то ни один из перечисленных выше методов не подходит.
Если вам действительно нужно подождать определенное время, прежде чем двигаться дальше, то, как уже упоминалось, используйте Task.Delay
:
await Task.Delay(5000); //wait 5 seconds