Interlocked.Exchange, mas não para booleanos?
-
09-06-2019 - |
Pergunta
Existe um equivalente para Interlocked.Exchange
para booleano?
Como uma troca atômica de valores que retorna o valor anterior e não requer bloqueios?
Solução
Não;use números inteiros em vez de booleanos.
Em princípio, tal coisa poderia ser escrita (cmpxchg, a instrução subjacente do processador, pode operar em operandos de 8, 16, 32 e 64 bits em x86, 8, 16, 32, 64 e operandos de 128 bits em x64), mas, na prática, a maioria das APIs se limita a operandos de ponteiro e ponteiro duplo (32 e 64 bits em x86, 64 e 128 bits em x64), porque eles são tudo o que você realmente precisa.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow