前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#多线程调试

C#多线程调试

作者头像
JusterZhu
发布2022-12-07 20:22:35
7010
发布2022-12-07 20:22:35
举报
文章被收录于专栏:JusterZhuJusterZhu

概要

这篇文章主要分享多线程部分调试技巧,在日常的开发工作中会经常遇到多线程调试的需要。在我们调试的过程中会出现断点的焦点在多个线程之间“反复横跳”根本无法集中跟踪某一个线程的操作链路。那么今天我们来看看如何调试操作。如果有其它需要的可以参考下面微软官方的文档地址。

  • 参考文献:https://docs.microsoft.com/zh-cn/visualstudio/debugger/get-started-debugging-multithreaded-apps?view=vs-2022
  • 工具:VisualStudio 2022
  • 框架:.NET5
  • 语言:C#
  • 程序:控制台应用

详细内容

开始调试之前我们先需要明白一个概念--“调试条件”。

调试条件编写,下图的红圈里就是编写条件的文本框。文本框里的内容和写C#代码中if判断里的条件没有任何区别。同时还能在里面编写方法。

---分割线--

当条件文本框失去焦点之后自动保存。

调试技巧1:

  • 1.编写测试代码
代码语言:javascript
复制
    internal class Program
    {
        static void Main(string[] args)
        {
            Task[] task = new Task[6];
            for (int i = 0; i < task.Length; i++)
            {
                task[i] = Task.Run(Do);
            }
            Task.WaitAll(task);
        }

        private static void Do() 
        {
            int x = Thread.CurrentThread.ManagedThreadId;
            while (true)
            {
                Console.WriteLine(DateTime.Now);
            }
        }
    }
  • 2.打开线程监控窗口(需debug启动之后再点开“调试”选项)
  • 3.设置断点
  • 4.设置你需要查看的线程id

编写调试条件

F10开始调试

调试技巧2:

  • 1.编写测试代码
代码语言:javascript
复制
    internal class Program
    {
        static void Main(string[] args)
        {
            Task[] task = new Task[6];
            for (int i = 0; i < task.Length; i++)
            {
                task[i] = Task.Run(Do);
            }
            Task.WaitAll(task);
        }

        private static void Do() 
        {
            int x = Thread.CurrentThread.ManagedThreadId;
            //循环调试
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine(i);
            }
        }
    }

当遇到循环时,也可以编写调试条件。这样我们就不用一直按F10按50次了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JusterZhu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概要
  • 详细内容
    • 调试技巧1:
      • 调试技巧2:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档