VS多线程调试

目录

1.VS多线程调试问题描述

2.解决VS多线程调试的方法

2.1 无效方法

2.2 方法一

2.3 方法二


1.VS多线程调试问题描述

先看一下这个例子:

这里我的代码里有2个线程,一个线程在发送数据,另外一个线程在接收数据,上图中加断点的地方是发送线程的代码,接收线程中我有一个while循环在不断地打印日志。调试起来后当断点命中上图标记的位置时,可以发现接收线程停止打印日志了,这说明在VS中,当一个线程命中断点后,其它线程也不会再继续执行代码了。

2.解决VS多线程调试的方法

2.1 无效方法

有同学说把上面红色放开标记的选项去掉勾选就可以,我也试了一把,并没有效果

2.2 方法一

第1步:打开线程窗口

第2步:如果你不想让某个线程运行,就在右下角选择那个线程并右键单击,在弹出的菜单中选择“冻结”。如果之后想让刚才被冻结的线程恢复运行,则再次右键单击该线程,然后点击“解冻”菜单。如果你想暂停当前线程,转去执行其它线程,则冻结当前线程,然后右键单击你想运行的线程,在弹出菜单中选择“切换”线程,则VS会自动跳转到代码中的某一行,这时你就可以调试你想运行的那个线程了。

2.3 方法二

虽然方法二一定程度上可以解决部分问题,但还是难以模拟真实的应用场景,且操作复杂,所以我觉得最好的方法就是打印日志,可以直接打印到VS输出窗口,也可以打印日志到文件


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部