Тайм-ауты .Net: WaitForSingleObject против таймера
Я реализую тайм-аут для асинхронной операции (серии сетевых операций ввода-вывода), и я не уверен, какая из них лучше (с точки зрения распределения / производительности): создание EventWaitHandle и использование RegisterWaitForSingleObject или просто создание Timer и используя свой тик.
В моем конкретном случае EventWaitHandle создается лениво, но, очевидно, его нужно создать, чтобы использовать WaitForSingleObject. Так что на самом деле это вопрос о стоимости ресурсов WaitHandle + WaitForSingleObject против Timer. Оба подхода примерно так же легко реализовать.
Я реализовал оба в разное время, поэтому я понимаю ландшафт, я просто не уверен, какой подход «лучше».