今天发现程序在release版本下的exe文件运行起来有问题。之前一直用的debug,在vs内调试没有问题,debug文件夹下的exe也没有问题。改为release后,在vs内调试也没有问题,结果在运行release文件夹下的exe时程序出问题了。
网上所说的什么debug和release的区别看了下,貌似和我这个也没什么关系,看到一个帖和我问题一样,他是数组越界了。然后看我这个,貌似也没有,只有一步步看问题在哪了。最后发现,是一个循环的问题。一个空循环。
这个循环是为了等待另一个线程的结果,所以设了个空循环等待另一个线程结束后再往下运行,但是程序一直没往下走。
然后就在循环内随便加了个没用的 i++; 就ok了。
不知道为什么在debug下以及在vs内调试都没问题,只是在release下的exe文件有这个问题。。。
也许是release对空循环的机制不同,但是在vs内调试的时候避免了这个问题。