>>612
progressBar.Value+=1
としたときに
1.読み込み
2.加算して書き込み
の処理が必要とすると、1と2の間に別スレッドが書き換えを行うことで結果が矛盾する
Interlocked命令を使えばそれは防げるけど、MaxValueを超えないかとかの判定が入るので結局ロックが必要

この程度ならまだしも、裏でWin32やCOMを叩いてるコントロールはさらにややこしい