在程序优化里面如果选择了最大速度或者最小体积都会造成程序多线程的混乱,优化之前在文件解码的线程中间会调用刷屏的部分,刷屏的主线程和解码线程交互完成了工作;但是优化之后,程序在解码的线程部分就没有调用刷屏的主线程,导致程序直接崩溃,请高手们指点哇。。谢谢。。

解决方案 »

  1.   

    问题搞清楚了,在优化选项中如果选择了速度优化和体积优化,在回调的Proc函数中得到的句柄就不正确了,但是没有优化的时候得到的句柄是正确的,我就纳闷了,怎么会这样呢。其实就是一个在打开文件调用GetOpenFileName()的时候,出来一个对话框,然后返回的窗口句柄就不对了,但是在没有优化之前是对啊,快崩溃了大侠们救我
      

  2.   

    可能是有些线程间共享的变量,应该声明为volatile,这样阻止编译器对其做进一步优化。因为他们是有可能被其他线程改变的,所以不能仅从本函数的上下文里对其值进行优化。
    加上volatile试试吧