dokumentacji MSDN dla ManualResetEventSlim
stanachManualResetEventSlim zalecany czas oczekiwania
Można użyć tej klasy dla lepszej wydajności niż
ManualResetEvent
gdy oczekuje się czas oczekiwania jest bardzo krótki.
Jak długo jest "bardzo krótki"? W którym momencie korzyść z używania obiektu jądra o wartości ManualResetEvent
przeważy nad narzutem jego utworzenia?
Dla mnie "bardzo krótki" jest całkiem bez znaczenia. Moją zasadą jest to, że jeśli spodziewam się, że zdarzenie zostanie ustawione przez większość czasu (tzn. Nie oczekuję czekania), użyję 'ManualResetEventSlim'. W przeciwnym razie użyję 'ManualResetEvent'. Jeśli piszesz aplikację wrażliwą na wydajność, powinieneś przetestować swój kod, aby stwierdzić, czy są jakieś różnice. Jeśli nie liczymy mikrosekund, to prawdopodobnie strata czasu, aby się martwić, który z nich jest szybszy. –
"Bardzo krótki" w tym kontekście oznacza dziesiątki do setek mikrosekund. Szczupła wersja wiruje z oczekiwaniem, że drugi wątek zwolni blokadę w czasie krótszym niż kilka przełączników kontekstu. – doug65536