0

この記事で説明されているように、値型でロック(SyncLock)を使用できないことはわかっています。

http://msdn.microsoft.com/msdnmag/issues/03/01/NET/

しかし、私の質問は、これは私がする必要がないことを意味するのでしょうか?または、ブール値をオブジェクト内でラップして、ロックできるようにする必要がありますか?答えが「いいえ」の場合、ロックする必要はありません。2つのスレッドが同時に値を変更しようとするとどうなりますか?私が現在取り組んでいるアプリケーションでは、2つのスレッドが同時にtrueとfalseの両方に設定しようとする可能性があります。

4

1 に答える 1

0

ブール値自体は、ロックを必要としません。
足元が変われば古い値でも新しい値でもいいのでOKです。
ただし、通常、変数は単独では存在しません。その価値は他者の価値に関係しており、グループ全体を保護する必要があります。
たとえば、リストがあり、それがいっぱいかどうかを示すブール値があるとします。2 つの一貫性を保つには、両方をカバーするロックが必要です。

于 2011-12-29T14:28:49.950 に答える