Wprowadzam limit czasu na asynchroniczną operację (serię sieciowych operacji wejścia) i nie jestem pewien, która jest "lepsza" (z perspektywy alokacji/wydajności): tworzenie EventWaitHandle i przy użyciu RegisterWaitForSingleObject, lub po prostu tworzenie Timer i przy użyciu jego Tick..Net Limity czasu: WaitForSingleObject vs Timer
W moim konkretnym przypadku EventWaitHandle jest leniwy, ale oczywiście musi być utworzony w instancji, aby używać WaitForSingleObject. Tak naprawdę to jest pytanie o koszt zasobów WaitHandle + WaitForSingleObject vs Timer. Oba podejścia są równie łatwe do wdrożenia.
Zaimplementowałem oba w różnym czasie, więc rozumiem teren, po prostu nie jestem pewien, które podejście jest "lepsze".
Jego artykuł na blogu jest dobre porównanie zastosowań, ale nie jest bardzo silnym zaleceniem faworyzowania jednego z drugim. I im więcej o tym myślałem, tym bardziej nie widziałem żadnej różnicy w zakresie przejść jądra i tak dalej. Nadal chciałbym wiedzieć, czy nie było żadnych różnic w kosztach dla bazowego interfejsu Win32 API, ale "waga" implementacji .net wydaje się najlepszą odpowiedzią, którą również znalazłem. – piers7