我知道您可以使用System.Diagnostics.Debugger.IsAttached
确定是否附加了调试器,但有没有办法确定是否附加了分析器?
我的探查器无法通过线程池跟踪任务,所以我想在分析时自动禁用并行性。
答案 0 :(得分:7)
对于标准探查器界面,需要设置环境变量。
我想您可以通过Environment
课程查看此内容。
该变量名为COR_ENABLE_PROFILING
,如果启用,则会设置为1
。
答案 1 :(得分:1)
因此,如果没有连接调试器(或探查器),System.Diagnostics.Debugger.IsAttached
将返回False。
注意:我不确定SlimTune,但您倾向于附加到流程的Profilers:How to: Attach and Detach the Profiler to Running Processes
答案 2 :(得分:0)
对于那些感兴趣的人,似乎可以通过检查DIAGHUB_SESSION_ID
环境变量的存在来检测Visual Studio的诊断中心(至少在Visual Studio 2017中)是否正在分析您的进程。