我有一个方法,其中包含在使用 MiniProfiler 时我想从分析中忽略的部分代码。
从文档中可以看出,执行此操作的扩展方法是.Ignore()
,当在using
语句中使用时,应在持续时间内禁用分析。
不幸的是,我没有得到预期的结果。假设我有这个方法结构:
public async Task<IActionResult> FirstMethod()
{
using (MiniProfiler.Current.Step("FirstMethod"))
{
IActionResult result = this.SecondMethod();
using (MiniProfiler.Current.Ignore())
{
Thread.Sleep(100);
}
return result;
}
}
internal virtual IActionResult SecondMethod()
{
using (MiniProfiler.Current.CustomTiming("SQL", "QuerySecondMethod"))
{
// Some data logic
}
}
我所期望的是,在分析器上,FirstMethod
步骤持续时间和SecondMethod
自定义时间将大致相同,因为FirstMethod
只调用SecondMethod
并忽略Thread.Sleep()
.
但是我不断得到FirstMethod
持续时间比 100 毫秒长SecondMethod
,这使得它看起来Ignore
并没有真正禁用其中代码的探查器。
我究竟做错了什么?我是否误解了该Ignore
方法的文档和目的?