分析应用程序中有多少线程以及它们在做什么

本文关键字:什么 线程 应用程序 多少 | 更新日期: 2023-09-27 17:50:17

我有一些c#应用程序,我必须修改。当我修改一些方法时,我需要知道我是否应该使它线程安全。我如何检查特定的方法是否可以从不同的线程调用?是否有任何静态分析实用程序?

我试图运行我的应用程序,并在任务管理器中发现它包含5个线程。我已经扫描了源代码,到目前为止,应用程序应该是单线程的。为什么有5个线程?可能。net包含一些"服务"线程?我如何检查谁创建了这5个线程,他们在做什么?是否有运行时分析实用程序?

谢谢

分析应用程序中有多少线程以及它们在做什么

你可以做的一件事,你的调试器:进入Debug | Break All,设置一个窗口查看线程,另一个窗口附近查看调用堆栈。确保您使用的是Microsoft符号服务器(这样可以查看调用堆栈)。然后单击每个线程并查看其调用堆栈。. net确实给你的应用程序添加了一些线程,其中一个是Finalizer线程,我不知道其他线程是什么,我的头。

另一个选项,在特定的方法中插入一个断点,当它被命中时,要么在线程窗口中查看当前线程,要么将断点配置为输出当前线程ID而不是中断,这样您就可以稍后检查输出窗口文本。

显然这并不全面,但这是一个开始。

做到这一点的唯一可行方法是理解系统的设计,而您不会使用任何工具来做到这一点。您只能通过阅读代码来做到这一点。