用于查找竞争条件/死锁的 C#/.NET 分析工具

标签 c# .net multithreading static-analysis ndepend

是否有分析 .NET 代码并发现竞争条件的工具?

我有一些代码具有获取或创建私有(private)静态字段的公共(public)静态属性。它还具有一个公共(public)静态方法,可将此字段设置为 null(...是的,我知道!...)

由于这两种方法都没有锁定,所以可以肯定的是,将来事情会变得非常糟糕。我需要一个工具来递归地检查调用这些方法中的任何一个的东西,并查看是否在另一个线程上产生了任何东西。

我正在寻找一个工具或者一个 nDepend SQL 脚本(如果可能的话)。

最佳答案

您可能正在寻找其中之一:


注意:此答案来自 2010 年。与所有建议答案一样,建议往往会随着时间而改变。现在可能还有其他产品,作为 Microsoft Research Labs 项目的 CHESS 可能已经发展成为最终产品或完全废弃。请对这个答案持保留态度,并针对现在适合的产品进行新的研究。

关于用于查找竞争条件/死锁的 C#/.NET 分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2379610/

相关文章:

c# - 使用 Fluent NHibernate 选择 N 个随机行

c# - .NET 正则表达式模式?

c# - 同一 .Net 6 项目中多个 nuget 包中同一 DLL 的不同版本

c# - C#中的分布式计算

python - 快速精确的 Python 重复计时器

database - Delphi - 调整线程休眠时间

c# - xxxxx 是一个命名空间,但像类型一样使用

c# - 无法从用法中推断出 GetInstance<T>()'。尝试明确指定类型参数

c# - 如何在 VB.NET 中执行逐字字符串文字?

android - 即使我得到另一个实例,也可以从正确的线程进行 Realm 访问