Sto implementando un timeout su un'operazione asincrona (una serie di IO di rete), e non sono sicuro di quale sia la prospettiva 'migliore' (da una allocazione/prestazioni): creare un EventWaitHandle e utilizza RegisterWaitForSingleObject, o semplicemente creando un Timer e usando il suo Tick.. Timeout Net: WaitForSingleObject vs Timer
Nel mio caso specifico, EventWaitHandle è creato in modo pigro, ma ovviamente dovrebbe essere istanziato per utilizzare WaitForSingleObject. Quindi questa è davvero una domanda sul costo delle risorse di WaitHandle + WaitForSingleObject vs un Timer. Entrambi gli approcci sono facili da implementare.
Ho implementato entrambi in vari momenti, quindi comprendo il terreno, non sono sicuro di quale approccio sia "migliore".
Il suo blog è un buon confronto degli usi, ma non è una raccomandazione molto forte per favorire l'uno contro l'altro. E più ci pensavo, più non vedevo alcuna differenza in termini di transizioni del kernel e così via. Mi piacerebbe ancora sapere se c'è una differenza di costo per le API di Win32 sottostanti, ma il "peso" dell'implementazione .net sembra la risposta migliore che ho trovato anch'io. – piers7