资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 软件开发 >
Advertisement
文章正文

进程锁大家是否发现过问题(windows)?cowworker plz in!

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   

windows下实现进程互斥的方法通常类似于:  
          HANDLE   proc_mutex   =   ::CreateMutexA   (NULL,FALSE,"MYPROGRAMXXX");  
          if(GetLastError   ==   ERROR_ALREADY_EXISTS)  
          {  
                  return   printf("xxxx");  
          }  
   
          ACE里进程锁在windows下基本实现是:  
          HANDLE   proc_mutex   =   ::CreateMutexA   (NULL,FALSE,"MYPROGRAMXXX");  
          switch(WaitForSingleObject   (proc_mutex   ,   0))  
          {  
                  case   WAIT_OBJECT_0:  
                  case   WAIT_ABANDONED:  
                          break;  
                  case   WAIT_TIMEOUT:    
          return   printf("xxxx");  
                  default:  
                          return   printf("xxxx");  
          }  
   
          现在我有一个模块用了ace的进程锁来防止启动多个进程实例,但现在发生了几次  
          可以同时存在多个进程实例的情况  
          ace的进程锁我这里很多模块都用,常年都没有发现问题,出现问题的模块也只是  
          最近发生了几次了,而且没有找到重现规律,不知道哪位同学朋到过类似的问题没  
          有?请赐教,多谢!(比如在进程启动时运行进程或者通过远程控制启动进程是否  
          可能导致这种问题?我还没找到规律,不过出现问题的时候有类似的操作)

网友回答:

发表者:Ah

switch(WaitForSingleObject   (proc_mutex   ,   0))  
          {  
                  case   WAIT_OBJECT_0:  
                  case   WAIT_ABANDONED:  
                          break;  
                  case   WAIT_TIMEOUT:    
          return   printf("xxxx");  
                  default:  
                          return   printf("xxxx");  
          }  
  有没有看在这是里是进入了哪个case?

发表者:broadoceans

可以用原子表和原子函数处理  
  http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=198015

发表者:nwpulipeng

混分

发表者:DentistryDoctor

判断一下CreateMutexA的返回值,GetLastError   to   check   if   the   mutex   has   existed.


 

 
热门推荐笔记本: 清华同方笔记本
相关文章:
笔记本相关:
IT技术文章:
webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
©2007 popbb.net All Rights Reserved