Hirdetés

Új hozzászólás Aktív témák

  • joysefke

    veterán

    válasz pvt.peter #9576 üzenetére

    Szinte biztos, hogy nem atomi, mint ahogyan az "i++" sem atomi, hiába fér bele egy sorba. Az if operatoros verzió amit helyettesíteni akarsz pedig garantáltan nem atomi.

    Kérdés, hogy miért van szükséged atomi műveletekre? Az atomi műveleteket biztosító C# osztályt egyébként itt találod: Interlocked Class (System.Threading) | Microsoft Docs

    Miért nem használasz egy "shared nothing" megközelítést ahol az adott konkurens metódusaid semmilyen közösen használt változót/adatot nem használnak? Vagy miért nem lockolsz valamilyen szemafor konstrukcióval a kritkus kódon (kritkus kód == írás művelet bármilyen közös változón)

    SZERK

    ezt dobta a kereső:

    What are Atomic operations and what are not?
    In C# Specification, the stamement about atomic operation is:
    “Reads and writes of the following data types shall be atomic: bool, char, byte, sbyte, short, ushort, uint, int, float, and reference types.” Also: “…there is no guarantee of atomic read-modify-write, such as in the case of increment or decrement.”.

    a ??= operator szerintem a read-modify-write kategóriába esik...

Új hozzászólás Aktív témák