笔记:用 CreateMutex 来创建一个互斥对象后,必须用 CloseHandle 来关闭这个对象,才能让多个程序同时运行。如果用 CreateMutex 创建了一个互斥对象,用 OpenMutex 获取了这个对象,然后 CloseHandle 关闭这个获取的对象,其实并没有关闭 CreateMutex 创建的互斥,还是不能多个程序运行。
也就是说,CreateMutex 创建的对象,用 OpenMutex 取的时候,是把主调进程的句柄表更新,并使对象的使用计数递增,OpenMutex 的 open,并不仅仅是打开的意思,还有使用计数+1的意思,所以 CloseHandle 的时候,是把计数减1,而原先 CreateMutex 的对象仍然存在。