2010-12-17 10 views
5

El método API InitializeCriticalSectionAndSpinCount le permite configurar un recuento de vueltas para que cuando se llame a EnterCriticalSection, realice un bucle utilizando un spinlock para intentar adquirir el recurso varias veces. Solo si todos los intentos fallan, la transición de subprocesos al modo kernel ingresa un estado de espera.InitializeCriticalSectionAndSpinCount, ¿hay un conteo de giros predeterminado?

Si se llama en su lugar 'normal' InitializeCriticalSection(), ¿hay un conjunto de recuentos 'predeterminado'? (O es 0, sin centrifugado?)

Respuesta

6

Citando this artículo:

SpinCount ... Este campo por defecto en cero, pero se puede ajustar a un valor diferente con el InitializeCriticalSectionAndSpinCount API

Por lo tanto, el valor predeterminado es no spin.

+1

Gracias por el enlace ... también indicó "Este campo está predeterminado en cero, pero se puede establecer en un valor diferente con la API InitializeCriticalSectionAndSpinCount". –

+0

Oh, lo siento por publicar información incorrecta a continuación. – Praetorian

+0

Oye, no hay problema Usted dio la información solicitada en el enlace. :) –

Cuestiones relacionadas