コード例 #1
0
            public IDisposable Run()
            {
                sourceSubscription            = new SingleAssignmentDisposable();
                sourceSubscription.Disposable = parent.source.Subscribe(this);

                var scheduling = UnityObservable.IntervalFrame(parent.frameCount, parent.frameCountType)
                                 .Subscribe(new SampleFrameTick(this));

                return(StableCompositeDisposable.Create(sourceSubscription, scheduling));
            }
コード例 #2
0
            public override void OnNext(T value)
            {
                lock (gate)
                {
                    if (!open)
                    {
                        return;
                    }
                    observer.OnNext(value);
                    open = false;
                }

                var d = new SingleAssignmentDisposable();

                cancelable.Disposable = d;
                d.Disposable          = UnityObservable.TimerFrame(parent.frameCount, parent.frameCountType)
                                        .Subscribe(tick);
            }
コード例 #3
0
            public override void OnNext(T value)
            {
                ulong currentid;

                lock (gate)
                {
                    hasValue    = true;
                    latestValue = value;
                    id          = unchecked (id + 1);
                    currentid   = id;
                }

                var d = new SingleAssignmentDisposable();

                cancelable.Disposable = d;
                d.Disposable          = UnityObservable.TimerFrame(parent.frameCount, parent.frameCountType)
                                        .Subscribe(new ThrottleFrameTick(this, currentid));
            }
コード例 #4
0
ファイル: TimeoutFrame.cs プロジェクト: sufre/QFramework
 IDisposable RunTimer(ulong timerId)
 {
     return(UnityObservable.TimerFrame(parent.frameCount, parent.frameCountType)
            .Subscribe(new TimeoutFrameTick(this, timerId)));
 }