Example #1
0
        public static void Update()
        {
            Scale.MainUpdate();

            UserAction.Update();
            RenderForm.LoadAction();
            InputCaret.UpdateCaret();
            Keyboard.DispatchEvent();
            RenderForm.ApplyAll();
            ThreadMission.ExtcuteMain();
            ModelManagerUI.RecycleGameObject();
            AnimationManage.Manage.Update();
            AllTime += Time.deltaTime;
            mission.AddSubMission(SubThread, null);
        }
        public static void AddMission(Action <object> action, object dat, string tag = null, Action <object> wait = null)
        {
            if (threads == null)
            {
                return;
            }
            for (int i = 0; i < threads.Count; i++)
            {
                if (threads[i].Tag == tag)
                {
                    threads[i].AddSubMission(action, dat, wait);
                    return;
                }
            }
            var mis = new ThreadMission(null);

            mis.AddSubMission(action, dat, wait);
            threads.Add(mis);
        }
 static void ExtcuteMain(ThreadMission mission)
 {
     for (int j = 0; j < 2048; j++)
     {
         var m = mission.MainMission.Dequeue();
         if (m == null)
         {
             mission.mainFree = true;
             break;
         }
         else
         {
             mission.mainFree = false;
             m.action(m.data);
             if (m.waitAction != null)
             {
                 mission.AddSubMission(m.waitAction, m.data);
             }
         }
     }
 }