LeaveCriticalSection问题的解决方案
2016-05-01 20:49
323 查看
1、问题描述
在VS2010执行过程之中,程序崩溃,出现了以下问题,导致程序中断。如图1所示程序报错如下所示:
*******************************************************************************/ void __cdecl _unlock ( int locknum ) { /* * leave the critical section. */ LeaveCriticalSection( _locktable[locknum].lock ); }
2、解决方案
(1)原因描述:内存空间占据过大,需要释放内存空间。解决办法:针对这个问题,需要清空很多使用完的内存,如<vector>的内容、图片占据的内存等等。其中。vector清空的方式如下所示。
vector <string> bmptest;//声明 //使用 //**************************** //使用后清空********************* bmptest.clear();//清空vector vector <string>().swap(bmptest);//回收vector内存
图像内存的清空如下所示。
IplImage* srctest = cvLoadImage(imagename); //srctest为读入测试原始图像 if(!srctest) { fprintf(stderr, "Can not load image %s\n", imagename); return -1; } cvReleaseImage(&srctest);//清空图像内存
(2)原因描述:不同的进程调用同一个资源,导致死锁问题发生。或者是不同的进程同时要求更改某一变量导致。
解决办法:整理程序,将那些命名相同的名称改一下,换成不同的变量名。有效防止一个全局变量在两个线程中同时被操作的可能性。然后问题解决。
3、总结
这种问题偏向于,变量命名问题,需要对自己的变量命名规范一下,防止多重调用导致的死锁现象发生。希望能够对读者有所帮助。4、致谢
[1]http://blog.csdn.net/amwfnyq/article/details/25139067[2]http://blog.csdn.net/ninedays/article/details/5381123
相关文章推荐
- 模板综合
- linux常用命令-part2
- 第九周进度报告
- python-模拟math.pi
- linux常用命令-part1
- case when 将表中一列按照一定规则分两列显示
- zoj3872Beauty of Array
- animation中的transform
- python线程池(threadpool)模块使用
- linux常用命令-part3
- 二分法简介
- 20145222黄亚奇《Java程序设计》实验四实验报告
- Uva-10891(dp专组B)
- Java语言基础新手熟知
- SpringMVC验证框架Validation特殊用法
- 对一个正整数n,算得到1需要的最少操作次数
- GDT,LDT,GDTR,LDTR 详解,包你理解透彻(转)
- Linux系统环境快速熟悉
- 用冒泡排序法实现qsort函数
- Tensorflow安装(MAC版)