私は2つのクラスを持っています - クラス 'MyDerived
'は、抽象基本クラス 'MyBase
'から派生しています。 PrimaryDerivedClass
もMyBase
を継承します。 私はまずPrimaryDerivedClass
のインスタンスを作成し、インスタンスを作成して 'MyDerived
'を作成します。なぜ揮発性変数は通常非公開ですか?
MyBase
はPrimaryDerivedClass
とMyDerived
の新しいインスタンスが作成されるときThreadPool.QueueUserWorkItem(ProcessThread)
のように使用されてProcessThread
と呼ばれるプロテクトメソッドを持っています。今、私はいくつかのシナリオですべてのスレッドを停止したい場合、私はいくつかのブール揮発性変数をTRUEに設定していて、他のスレッドが揮発性変数の値= TRUE
を見つけると、処理を停止します。
「private volatile bool stopThreads
」をMyBase
に宣言したとき、意図した動作が得られませんでした。しかし、私がそれをstatic
またはpublic
にしたとき、私が痛感しようとしているものを見ることができました。 プライベート揮発性の場合はどうなりますか?
上記の要件を脇に置いて、さらに質問があります。 通常、揮発性変数はプライベートと宣言されています。重要な側面はありますか?通常、プライベートと宣言されていますか?
(私はマルチスレッドに新しいです。)
揮発性を避けることができます。http://www.bluebytesoftware.com/blog/2010/12/04/SayonaraVolatile.aspx – TrueWill
@TrueWill:ありがとうございます。 – Learner