public static void Do(TraceSource trace, string name, Action action) { var operation = new TraceOperation(trace, name); try { action(); } catch (Exception e) { operation.Exception = e; throw; } finally { operation.Dispose(); } }
public static async Task <TResult> DoAsync <TResult>(TraceSource trace, string name, Func <Task <TResult> > action) { var operation = new TraceOperation(trace, name); try { return(await action()); } catch (Exception e) { operation.Exception = e; throw; } finally { operation.Dispose(); } }
public static T Do <T>(this TraceSource trace, string name, Func <T> action) { return(TraceOperation.Do(trace, name, action)); }
public static void Do(this TraceSource trace, string name, Action action) { TraceOperation.Do(trace, name, action); }
public static Task <T> DoAsync <T>(string name, Func <Task <T> > action) { return(TraceOperation.DoAsync(_trace, name, action)); }
public static T Do <T>(string name, Func <T> action) { return(TraceOperation.Do(_trace, name, action)); }
public static void Do(string name, Action action) { TraceOperation.Do(_trace, name, action); }