回答編集履歴

2

追記

2021/03/06 00:58

投稿

退会済みユーザー
test CHANGED
@@ -7,6 +7,10 @@
7
7
 
8
8
 
9
9
  単純な値で他のオブジェクトとの関連が無く、複数のスレッドから読み込まれるが、書き込むのが単一のスレッドと判っているようなケースなら、しない事もあるかもしれません。(値のモニタリング画面的なものとか)
10
+
11
+ (追記)
12
+
13
+ 32bitアプリで64bit値を読み書きするようなケースだと、操作はアトミックにならないので排他が必要です。判断がつかない場合は、Interlockedクラスを使用して値の読み書きをしたほうがよいでしょう。
10
14
 
11
15
 
12
16
 

1

修正

2021/03/06 00:58

投稿

退会済みユーザー
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- 排他制御によって何を実現したいかという要件で変わってくるので一概に言えないです。単純なインクリメント・デクリメント・論理演算ならInterlockedクラスを使えばよいですし、スレッドセーフなコレクションが必要なら、System.Collections.Concurrent 名前空間にいくつか用意されています。プロセス間での排他も必要ならセマフォを使う必要があるでしょう。ベストな排他制御の方法を選ぶためには、要件を明確にする必要があります。
25
+ 排他制御によって何を実現したいかという要件で変わってくるので一概に言えないです。単純な算ならInterlockedクラスを使えばよいですし、スレッドセーフなコレクションが必要なら、System.Collections.Concurrent 名前空間にいくつか用意されています。プロセス間での排他も必要ならセマフォを使う必要があるでしょう。ベストな排他制御の方法を選ぶためには、要件を明確にする必要があります。
26
26
 
27
27
 
28
28