用互斥(mutex)
![](/icons/77503dou.gif)
mutex本来是多线程同步用
![](/icons/77503de.gif)
![](/icons/77503dou.gif)
防止多个线程访问同
![](/icons/77503yi.gif)
资源而引发冲突
![](/icons/77503dou2.gif)
用createmutex可以创建mutex对象
![](/icons/77503dou.gif)
实质上是
![](/icons/77503yi.gif)
个kernel对象
在任何win32
![](/icons/77503chengxu.gif)
(包括gdi和console)
![](/icons/77503de.gif)
启动部分加上以下代码(console
![](/icons/77503chengxu.gif)
![](/icons/77503de.gif)
![](/icons/77503main.gif)
![](/icons/77503hanshu.gif)
、mfc
![](/icons/77503chengxu.gif)
![](/icons/77503de.gif)
cwinapp派生类
![](/icons/77503de.gif)
initinstance成员
![](/icons/77503hanshu.gif)
、rawsdk
![](/icons/77503chengxu.gif)
![](/icons/77503de.gif)
win
![](/icons/77503hanshu.gif)
):
hmutex=createmutex(
null,//nosecurityattributes
false,//initiallynotowned
\"runonlyoneinstance\");//命名mutex是全局对象
//在所有
![](/icons/77503de.gif)
process都可以访问到
![](/icons/77503if.gif)
(hmutex
![](/icons/77503dd.gif)
null||error_already_exists
![](/icons/77503dd.gif)
::getlasterror
![](/icons/77503kh.gif)
)
{
//
![](/icons/77503chengxu.gif)
第 2次或以后运行时
![](/icons/77503dou.gif)
会得到mutex已经创建
![](/icons/77503de.gif)
![](/icons/77503return.gif)
false;
}
嘿嘿
![](/icons/77503dou.gif)
是不是不用findwindow优雅简洁多了?
另外
![](/icons/77503dou.gif)
如果要限定
![](/icons/77503chengxu.gif)
同时可运行n个例子如何办?
tips:用信号量(semaphore)
延伸阅读
最新评论