public void Subscribe(ISignalObserver <long> observer) { var parent = new TimerDisposable(observer); observer.OnSubscribe(parent); var d = scheduler.Schedule(parent, delay, (_, @this) => { @this.Run(); return(DisposableHelper.EMPTY); }); parent.SetTask(d); }
public IDisposable CaptureTiming(string instance = "", [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "") { if(!PerfTrace.Enabled) { return null; } var newTimer = new TimerDisposable(this, $"{Path.GetFileNameWithoutExtension(filePath)}:{memberName}", instance); var previousTimer = Interlocked.Exchange(ref _activeEvent, newTimer); newTimer.Parent = previousTimer; return newTimer; }
public IDisposable CaptureTiming(string instance = "", [CallerMemberName] string memberName = "", [CallerFilePath] string filePath = "") { if (!PerfTrace.Enabled) { return(null); } var newTimer = new TimerDisposable(this, $"{Path.GetFileNameWithoutExtension(filePath)}:{memberName}", instance); var previousTimer = Interlocked.Exchange(ref _activeEvent, newTimer); newTimer.Parent = previousTimer; return(newTimer); }
private void RecordTiming(PerfTraceEvent newEvent, TimerDisposable parent) { Interlocked.Exchange(ref _activeEvent, parent); _activeEvent.Children.Add(newEvent); }
public PerfTraceThreadContext(int threadId) { _activeEvent = new TimerDisposable(this, "Thread", $"{threadId.ToString()}"); _threadId = threadId; }
private void RecordTiming(PerfTraceEvent newEvent, TimerDisposable parent) { Interlocked.Exchange(ref _activeEvent, parent); _activeEvent.Children.Add(newEvent); }
public PerfTraceThreadContext(int threadId) { _activeEvent = new TimerDisposable(this, "Thread", $"{threadId.ToString()}"); _threadId = threadId; }