我正在优化一大段使用了几个静态关键节并从未调用DeleteCriticalSection的本地代码,将它们留给处理退出以进行清理。
没有泄漏,也没有关于CS总数过高的担忧,我只是想知道不清理它们是否会对Windows产生任何长期后果。我们有回归测试套件,每天会启动程序数千次,尽管最终用户不太可能这样做。
由于部署机器的范围,我们必须考虑Windows XP,而此本地代码是从托管应用程序运行的。
我正在优化一大段使用了几个静态关键节并从未调用DeleteCriticalSection的本地代码,将它们留给处理退出以进行清理。
没有泄漏,也没有关于CS总数过高的担忧,我只是想知道不清理它们是否会对Windows产生任何长期后果。我们有回归测试套件,每天会启动程序数千次,尽管最终用户不太可能这样做。
由于部署机器的范围,我们必须考虑Windows XP,而此本地代码是从托管应用程序运行的。
关键区域只是一块内存,除非检测到争用,此时会创建一个事件对象进行同步。进程退出将清理任何残留的事件。如果您在运行时动态创建它们而不释放它们,那就很糟糕。如果没有被清理的固定数量是每个进程的,则不需要担心。
原则上,当进程退出时,应清理每个进程资源。像事件对象这样的内核资源肯定遵循这个原则。