プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2019/05/14

[C#] enum 型に対して Interlocked.Exchange を使う

event_note2019/05/13 23:47

enum 型の変数に対して排他処理を行うため、Interlocked.Exchange を使いたい場合、int にキャストして格納します。

int _field;
public MyEnum Field
{
    get => (MyEnum)_field;
    set => Interlocked.Exchange(ref _field, (int)value);
}

尚、調べた限りでは、lock よりも Interlocked.Exchange ほうがコストが低いようです。