不一定。多线程当中最忌讳的就是两个线程同时对同一个公共变量操作。因为处理器调度机制的问题,你这个公共变量无论变化与不变化,都是正常的。如果非要这么写,建议使用信号量,来保证两个线程读/写 i 的时候是互斥的。示例:Semaphore mutex = new Semaphore(1, 1);void threadA(ref int i) { mutex.WaitOne(); // 对 i 读/写 mutex.Release();}void threadB(ref int i){ mutex.WaitOne(); // 对 i 读/写 mutex.Release();}// 以上代码仅供参考以帮助理解信号量的用法。