退出程序后立即重新进入,由于程序使用了防止重入的代码,检测到内存中有程序实例,主要是有线程没结束,所以不能重入。我在检测程序实例的代码中加入一个Sleep(ntime),但没有效果,即使ntime值很大。
有没有办法,使第二次进入的程序等待一定时间(如3秒),如果在这段时间内上一个实例不存在了,就继续程序否则第二次进入失败。
或者在程序退出时加一个进度条之类的提示,在程序所有线程退出后告诉用户。能否有办法实现?
有没有办法,使第二次进入的程序等待一定时间(如3秒),如果在这段时间内上一个实例不存在了,就继续程序否则第二次进入失败。
或者在程序退出时加一个进度条之类的提示,在程序所有线程退出后告诉用户。能否有办法实现?
解决方案 »
- Excel 表中的cell值怎么导出啊? 求大神来啊
- C-->API-->MFC-->.NET
- 谁有NAT端口映射算法?
- 怎样用wingdows自带的administrator 给自己做的activex签名
- 使用CImage类的一点小问题,请帮忙解答一下,谢谢
- 熟悉HPGL文件格式的大侠们都来看看啊~~~
- 变量访问不到!!!-----郁闷!!!求解!!!
- 对于VC++6.0来说,怎么知道它是按照C还是C++来编译的?
- 请问:怎样让CFileDialog打开的对话框同时显示两种类型的文件?
- 大家谈谈平时编代码的一些好的方法和不好的习惯,互相交流一下经验(主要是代码编写的规范化,包括函数,变量的命名则,注释的方法等)
- 动态连接库编译问题急问
- ado+jet4.0
HANDLE m_hmutex=OpenMutex(MUTEX_ALL_ACCESS,0,classname);
if(m_hmutex==NULL)
m_hmutex=CreateMutex(NULL,1,classname);
else
return FALSE;当然,结束时候必须使用
CloseHanle(m_hmutex);
注意程序结束后释放所有资源,否则即使你程序跑起来了,其潜在出错的可能也是不可估量的。
CCloseProgress dlg;
dlg.Create(IDD_DIALOG2);
dlg.m_Progress.SetRange(0,100);
dlg.m_Progress.SetPos(0);
dlg.CenterWindow();
do something dlg.m_Progress.SetPos(20);
do something
dlg.m_Progress.SetPos(40);do something
dlg.m_Progress.SetPos(60);
do something
dlg.m_Progress.SetPos(70);
do something
dlg.m_Progress.SetPos(90);
do something
dlg.m_Progress.SetPos(100);
结贴