示例#1
0
        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;
        }
示例#3
0
        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;
 }
示例#6
0
 private void RecordTiming(PerfTraceEvent newEvent, TimerDisposable parent)
 {
     Interlocked.Exchange(ref _activeEvent, parent);
     _activeEvent.Children.Add(newEvent);
 }
示例#7
0
 public PerfTraceThreadContext(int threadId)
 {
     _activeEvent = new TimerDisposable(this, "Thread", $"{threadId.ToString()}");
     _threadId    = threadId;
 }