つけなきゃだめってのは、何を見て言ってるの?
CLR2.0のメモリモデルでは書き込み順序換えは許可されてない、
かつ読み込みを複数回に分ける事も許可されてない、
したがって今回のような処理では実質的にvolatileは不要。

このことはMSDNマガジンにも書かれてる内容。