定义全局变量:
CCriticalSection cs;
在一个线程里面:
cs.Lock();
这里执行一些操作
cs.Unlock();问题是外部有些情况会终止这个线程,没有cs.Unlock(); 这样再次启动就无法执行了
怎么解决?
CCriticalSection cs;
在一个线程里面:
cs.Lock();
这里执行一些操作
cs.Unlock();问题是外部有些情况会终止这个线程,没有cs.Unlock(); 这样再次启动就无法执行了
怎么解决?
解决方案 »
- *Edit delete就出错怎么回事
- 真是怪了,一步步调试运行正确,Ctrl+F5运行就出错
- Windows窗口应用程序 MFC应用程序有什么区别呀?
- VC 中改变菜单名称
- 在VC6中如何动态创建FLASH控件(VC7中已成功)
- C/S之间进行通信传递信息是否可以用XML实现?请详解!
- 一个头文件包含问题,有关.h/.cpp中包含头文件
- 小弟我有很多很多关于vc++的问题,所以我想认识几位编程高手
- 哪儿能找到TTS中文语音库,以和MS Agent SDK开发包挂接,实现金山词霸样的中文语音朗读。
- openGL中关于LINK2001问题
- C++怎样调用C#编写的DLL文件呢?
- 利用List Control控件删除数据的问题
在终止该程序前,设定个标志,如果该线程资源已经被锁定,就先进行 Unlock解锁,
再终止线程@
如果openthread(...tid...), GetExitCodeThread(...)返回STILL_ACTIVE则说明线程运行正常,否则表示已经被结束了,这时你可以手动调用unlock.
思路很多,只要往判断线程状态的方向上想就行了...
但是,使用互斥量,系统是会将其资源释放的,并变成丢弃状态,句柄被激活。