c# - ClassName.ctor>b__11 在 dotTrace Profiler 中代表什么?

标签 c# profiler dottrace

使用 dotTrace 探查器时,我收到大量 NamespaceName.ClassName.ctor>b__11 的电话 (当我在应用程序上使用 Equatec 分析器时,我得到了类似的结果,神秘函数被称为 NamespaceName.ClassName.<ctor>b__11 )。我首先假设它是 ClassName 的构造函数但是 ClassName 的构造函数内部的断点只被击中一次。 我假设这是自动生成的函数,如果是,我怎样才能找到它被调用的地方?它和 ClassName 的构造函数有什么关系?如果构造函数只被调用一次?

最佳答案

这可能是构造函数中声明的 lambda。您是否使用=>在构造函数中订阅了事件?语法,或者其他会被频繁调用的东西?

当您使用 lambda 时,C# 编译器会将其转换为私有(private)方法,并使用该方法的委托(delegate)。 (如果您正在进行变量捕获,还有其他花哨的技巧。)

看看 Reflector 中的其他类,看起来 C# 编译器在将每个 lambda 转换为方法时只是对它们进行编号,使用您已经注意到的命名约定 <methodName>b__<number> ,只需对每一个进行编号即可。

关于c# - ClassName.ctor>b__11 在 dotTrace Profiler 中代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302589/

相关文章:

python - 在 Python 2.7 中获取代码块的执行时间

java - Netbeans profiler 保留内存计算错误?

performance - dotTrace - 我应该为我的桌面应用程序使用哪些分析设置?

azure - 是否可以使用 DotTrace 远程分析 Azure 网站?

c# - WinRT平台是否可以根据目标类型获取资源

c# - Entity Framework 6 Create() 与 new

c++ - Windows 应用程序分析器 - C++ Exe

c# - 对具有字符串/空值的列使用 dt.AsEnumerable().Sum

C# 解析格式为 "yyyyMMdd HH:mm:SS.ms"的时间戳

winforms - .net dottrace 内存分析使用问题 - 过滤循环引用