예제 #1
0
        public static bool IsCancelled(CancellableSignal signal)
        {
            if (null == signal)
            {
                return(false);
            }

            bool ret = false;

            if (signal.forceCancel)
            {
                ret = true;
            }
            else if (null != signal.func)
            {
                ret = signal.func();
            }

#if LOG_SIGNAL
            if (ret)
            {
                Debug.Log("CANCELED:" + signal);
            }
#endif// LOG_SIGNAL

            return(ret);
        }
예제 #2
0
        public static void Reset(CancellableSignal signal)
        {
            if (null == signal)
            {
                return;
            }

            signal.forceCancel = false;
        }
예제 #3
0
        public static void Cancel(CancellableSignal signal)
        {
            if (null == signal)
            {
                return;
            }

            signal.forceCancel = true;
        }
예제 #4
0
        public void Cancel()
        {
            if (this.IsDone)
            {
                return;
            }

            //this.IsDone = true;
            this.IsCanceled = true;

            Input input = this.input;

            if (null != input && null != input.signal)
            {
                if (!CancellableSignal.IsCancelled(input.signal))
                {
                    CancellableSignal.Cancel(input.signal);
                }
            }
        }