Domanda

ho visto un paio di posti citando il seguente bit del C # spec: "A parte le funzioni di libreria progettato per questo scopo, non v'è alcuna garanzia di atomica lettura-modifica-scrittura." qualcuno mi può punto a queste funzioni di libreria?

È stato utile?

Soluzione

La classe Interlocked dovrebbe fornire con ciò che si sta cercando ; come ad esempio Incremento e Decremento .

Altri suggerimenti

Penso che riferisce a funzioni come Interlocked.CompareExchange .

Questo metodo può essere usato per, ad esempio, atomicamente aggiornare un double:

static void Add(ref double field, double amount)
{
    double before, after;
    do
    {
        before = field;
        after = before + amount;
    }
    while (Interlocked.CompareExchange(ref field, after, before) != before);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top