C# 启动调试 开始执行(不调试)多线程程序执行效果不一样 Mutex(已解决)
来源:互联网 发布:手机屏幕写字的软件 编辑:程序博客网 时间:2024/05/18 11:25
具体来说是这样的:
1. 主线程创建了Mutex,并拥有该mutex的执行权。
2. 主线程调用了某个方法,该方法进入时调用mutex.waitone请求执行权
3. 该方法退出时调用mutex.releasemutex释放执行权。
4. 主线程创建了一个新线程A。
5. A在执行的时候也调用了上述方法。
6. 主线程代码执行完毕。
问题是:
1. 使用“开始调试”时,程序正常运行。
2. 使用“开始执行(不调试)”或直接运行生成的.exe文件时在上述第5步发生死锁,程序运行不正常。
已知上述方法调用时所有可能发生的异常均已捕获,且在捕获处已增加释放mutex的代码,线程A开始执行时,主线程代码已经走完。
问题解决:
主线程创建Mutex时,选择FALSE,默认不拥有执行权,则两种运行模式均正常运作。
原因未知,百度并没发现类似问题报告。
0 0
- C# 启动调试 开始执行(不调试)多线程程序执行效果不一样 Mutex(已解决)
- 解决 无法启动调试。绑定句柄无效 开始执行(不调试) 错误
- VS2010启动调试运行 和开始执行(不调试)的区别与耗时
- VS添加-开始执行(不调试)按钮
- VS2010添加——开始执行(不调试)
- VS2010添加——开始执行(不调试)
- 开始执行不调试按钮为灰色
- 解决vs项目调试能运行,开始执行不调试没反应的bug
- IE8下vs2005启动调试不执行
- vs2008 开始执行不调试 不启用 灰色
- VS中生成、清理项目、调试、开始执行(不调试)、Debug 和 Release等之间的区别
- VS中生成、清理项目、调试、开始执行(不调试)、Debug 和 Release等之间的区别
- VS中生成、清理项目、调试、开始执行(不调试)、Debug 和 Release等之间的区别
- 开始执行不调试和直接点击exe的区别?
- VS2015将开始执行(不调试) 添加到标准工具栏
- 如何调试程序时 从第一条指令开始执行
- 调试程序心得-2(提高程序执行效率)
- gdb调试(一)启动调试程序
- 前台表格代码
- Unity3D-屏幕截图
- LeetCode 396. Rotate Function
- LeetCode Max Consecutive Ones
- java从入门到弃坑第四天
- C# 启动调试 开始执行(不调试)多线程程序执行效果不一样 Mutex(已解决)
- 软件工程从头学起(大数据方向)
- Java反射获取Android系统属性值
- fatal: unable to access 'https://github.com/taoge1024/kityminder.git/': SSL cert ificate problem: un
- 高斯日记
- 推荐一个能够自动打开子项的ListView
- 深度剖析:Java POJO Bean 对象与 Web Form 表单的自动装配
- Mat类型与IplImage之间的转换
- JAVA(4)——数字相加