可以直接从C#使用Profiling API吗?

我只想使用.NET Profiling API( ICorProfilerCallback等),但同时又不想处理C ++。 我一直在寻找一段时间,但没有在C#中找到任何例子,而是C#+ C ++,其中最有趣的部分是使用C ++编写的。

不可以,您无法在托管代码(C#或其他方式)中实现CLR概要分析API,因为在假定托管环境处于特定状态时,会在非常特定的时间调用概要分析回调。 在托管代码中实现回调会违反很多假设。

CLR分析API的开发人员David Broman 这样说 :

您需要用C ++编写探查器。 在执行配置文件应用程序期间,运行时会在非常精细的点调用探查器,在这些点上运行托管代码通常非常不安全。

David的博客是处理CLR分析API的绝佳资源。