public static void Assert(this Benchmarker self, Expression <Func <bool> > expr) { if (self == null) { return; } if (!self.EnabledInProduction && !FiTechCoreExtensions.EnableBenchMarkers) { return; } try { bool result = expr.Compile().Invoke(); if (!result && Debugger.IsAttached) { self.Mark($"Assert Failed {expr.ToString()} => {result}"); Debugger.Break(); } } catch (Exception x) { self.Mark($"Assert {expr.ToString()} => Exception", x); if (Debugger.IsAttached) { Debugger.Break(); } } }
public static void Wrap(this Benchmarker self, string label, Action action) { try { self.Mark($"[RegionStart] {label}"); action.Invoke(); self.Mark($"[RegionEndOk] {label}"); } catch (Exception x) { self.Mark($"[RegionException] {label}", x); throw new Exception($"Error in Region {label}", x); } }
public static async Task <T> Wrap <T>(this Benchmarker self, string label, Func <Task <T> > action) { T retv; try { self.Mark($"[RegionStart] {label}"); retv = await action.Invoke(); self.Mark($"[RegionEndOk] {label}"); } catch (Exception x) { self.Mark($"[RegionException] {label}", x); retv = default(T); throw x; } return(retv); }
public static T Wrap <T>(this Benchmarker self, string label, Func <T> action) { if (self == null) { return(default(T)); } T retv; try { self.Mark($"[RegionStart] {label}"); retv = action.Invoke(); self.Mark($"[RegionEndOk] {label}"); } catch (Exception x) { self.Mark($"[RegionException] {label}", x); throw new Exception($"Error in Region {label}", x); } return(retv); }