我只想使用.NET Profiling API(ICorProfilerCallback
等),但同时又不想处理C ++。我一直在寻找一段时间,但没有在C#中找到任何例子,而是C#+ C ++,其中最有趣的部分是用C ++编写的。
答案 0 :(得分:26)
不可以,您无法在托管代码(C#或其他方式)中实现CLR分析API,因为在假定托管环境处于特定状态时,会在非常特定的时间调用分析回调。在托管代码中实现回调会违反很多假设。
CLR概要分析API的开发人员David Broman有this to say:
你需要写你的探查器 C ++。分析器由。调用 运行期间非常微妙的点 执行配置文件的应用程序, 它往往是非常不安全的 在这些点上运行托管代码。
David's blog是处理CLR分析API的绝佳资源。