4

スレッドセーフとアトミック操作を静的フィールドで提供する必要がある場合は、静的フィールドを使用して連動させる必要があります。静的フィールドはデフォルトでアトミックですか? 例えば:

Interlocked.Increment(ref Factory.DefectivePartsCount);

ありがとう。

4

2 に答える 2

4

はい。

フィールド (Int32 を想定) はアトミックです。これは、静的であるためではなく、32 ビットであるためです。

ただしFactory.DefectivePartsCount += 1、変数に対する読み取りおよび書き込みアクションが必要なため、操作全体がスレッドセーフではありません。

于 2012-10-20T13:00:36.197 に答える