コード例 #1
0
        //主要是用来判斷是否完成任務
        IEnumerator TaskStateMonitor()
        {
            yield return(null);

            IEnumerator e = coroutine;

            while (state == State.Running)
            {
                if (state == State.Paused)
                {
                    yield return(null);
                }
                else
                {
                    //IEnumerator 有current ,movenext,reset
                    //不停地執行new出来的任務,因为new出来的任務是Enumrator,直到不能movenext了
                    if (e != null && e.MoveNext())
                    {
                        yield return(e.Current);
                    }
                    else
                    {
                        state = State.Finished;
                    }
                }
            }
            FinishedHander handler = Finished;

            if (handler != null)
            {
                handler(true);                 //true
            }
        }
コード例 #2
0
    void TaskFinished(bool isFinished)
    {
        FinishedHander handler = Finished;

        if (handler != null)
        {
            handler(isFinished);
        }
    }