C#, C♯, C#相談室 P ..
[2ch|▼Menu]
269:デフォルトの名無しさん
09/04/20 11:37:48
Collection系(例えばQueue)でロックされた状態で処理を行いたいとき

1.lock(独自のロックオブジェクト)
2.lock(対象.SyncRoot)
3.Queue.Synchronized(対象)

とか考えられるんですが

使い分けの方法がわからない
1・・・コレクションだけではなくその他の変数やオブジェクトもロックしたいときにまとめて一回でやりたいから使うかなと
2、3 この違いは一体何なのか教えてほしいです。

そして Queue.Synchronized でMSDN調べたら
同期されている (スレッド セーフな) Queue ラッパーを返します
とありますが、型が同じということだけはわかりますがこれはコピーされたオブジェクトなのかそれとも元の本体そのものなのか・・・

予想すると
3のラッパーはオブジェクトのディープコピーをかえしてきて読み取り専用的に扱う
削除なんかは3の操作ではできないから1,2の方法を使って要素を削除したり

こんな考え方でいいのでしょうか?





次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4347日前に更新/229 KB
担当:undef