예제 #1
0
            public override void OnNext(T value)
            {
                bool isPassed;

                try
                {
                    isPassed = parent.predicateWithIndex(value, index++);
                }
                catch (Exception ex)
                {
                    try { observer.OnError(ex); }
                    finally { Dispose(); }

                    return;
                }

                if (isPassed)
                {
                    observer.OnNext(value);
                }
                else
                {
                    try { observer.OnCompleted(); }
                    finally { Dispose(); }
                }
            }
예제 #2
0
            public override void OnNext(T value)
            {
                bool flag;

                try
                {
                    flag = parent.predicateWithIndex(value, index++);
                }
                catch (Exception error)
                {
                    try
                    {
                        observer.OnError(error);
                    }
                    finally
                    {
                        Dispose();
                    }
                    return;
                }
                if (flag)
                {
                    observer.OnNext(value);
                }
                else
                {
                    try
                    {
                        observer.OnCompleted();
                    }
                    finally
                    {
                        Dispose();
                    }
                }
            }