Domanda

Esiste un equivalente per Interlocked.Exchange per booleano?

Come uno scambio atomico di valori che restituisce il valore precedente e non richiede blocchi?

È stato utile?

Soluzione

NO;utilizzare numeri interi anziché booleani.

In linea di principio una cosa del genere potrebbe essere scritta (cmpxchg, l'istruzione sottostante del processore, può operare su operandi a 8, 16, 32 e 64 bit su operandi x86, 8, 16, 32, 64 e 128 bit su x64), ma in pratica la maggior parte delle API si attacca agli operandi puntatore e doppio puntatore (32 e 64 bit su x86, 64 e 128 bit su x64), perché sono tutto ciò di cui hai veramente bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top