基本的な算術演算はスレッドセーフですか?C#の基本的な算術演算はアトミックです
例えば、異なるスレッドから変更されるグローバル変数に++
操作がある場合、そのスレッドをロックする必要がありますか?例
void MyThread() // can have many running instances
{
aGlobal++;
}
またはそれが
void MyThread()
{
lock(lockerObj)
{
aGlobal++;
}
}
これは排他的な算術演算ではありません...変数への書き込みもあります! 'a + a'は' a = a + a'とは異なるものです。あなたは 'Interlocked.Increment'やalikesを使う必要があります! –