私はスレッド化とロックについて読んでいました。値型をロックできない(そうすべきではない)のが一般的な方法です。
だから問題は、値型をロックするための推奨される方法は何ですか?1つのことを行うにはいくつかの方法があることは知っていますが、例は見ていません。MSDNフォーラムには良いスレッドがありましたが、今はそれを見つけることができないようです。
ありがとう
ロックには別のオブジェクトを使用してください。
int valueType;
object valueTypeLock = new object();
void Foo()
{
lock (valueTypeLock)
{
valueType = 0;
}
}
私は常に別の変数を使用してロックしています。
object syncObj = new object();
void Foo()
{
lock(syncObj)
{
// do some stuff
}
}
値の型は不変で変更できないため、値の型をロックしても意味がありません。「this」は外界から見えるため、「this」をロックすることも問題です。
モニターの本来の使用方法に関する情報については、モニター (同期)を参照してください。