Interlocked.Exchange, mais pas pour les booléens?


11

Existe-t-il un équivalent pour Interlocked.Exchange pour boolean?

Comme un échange atomique de valeurs qui renvoie la valeur précédente et ne nécessite pas de verrous?

8

Non; utiliser des entiers au lieu de booléens. En principe, une telle chose pourrait être écrite (cmpxchg, l'instruction de processeur sous-jacente, peut fonctionner sur des opérandes de 8, 16, 32 et 64 bits sur des opérandes x86, 8, 16, 32, 64 et 128 bits). sur x64), mais en pratique, la plupart des API s'en tiennent aux opérandes pointeur et double pointeur (32 et 64 bits sur x86, 64 et 128 bits sur x64), car ils sont tout ce dont vous avez vraiment besoin.