Release版本下,while(Var);被直接优化解决方法
需要用到 while 来判断另一个线程中bool block 的值来做堵塞,代码如下:
while(block); // 堵塞线程,直到block变为false // do something
Debug版本下是堵塞成功的,Release版本就不行了,直接优化掉了,也不可能说直接把优化降级,最后发现一个从来没有使用过的修饰符 — volatile。
解决方法:
命名block的时候,加修饰符 volatile ,作用是该变量不再被编译器优化。