http://msdn.microsoft.com/en-us/library/aa691278(VS.71).aspxを見ていますが、int の読み取りと書き込みはアトミックですが、long の読み取りと書き込みはそうではない可能性があります。それは本当に 64 ビット プラットフォームに当てはまりますか? IntPtr.Size == 64 ビットまたは long ではありませんか? 何か足りないのでしょうか、それとも言語仕様が十分ではありませんか?
ここでもより多くの考え: http://philosopherdeveloper.wordpress.com/2011/02/08/beware-assignment-atomic-assignment/