From ae75d007b44ffbdeb1c7177af804ad6fa907bb13 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期一, 20 八月 2018 19:44:37 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/WindowBase/WindowAsyncLoad.cs |  420 +++++++++++++++++++++++++++++++----------------------------
 1 files changed, 219 insertions(+), 201 deletions(-)

diff --git a/System/WindowBase/WindowAsyncLoad.cs b/System/WindowBase/WindowAsyncLoad.cs
index a3eeade..28a7e99 100644
--- a/System/WindowBase/WindowAsyncLoad.cs
+++ b/System/WindowBase/WindowAsyncLoad.cs
@@ -1,201 +1,219 @@
-锘�//--------------------------------------------------------
-//    [Author]:           绗簩涓栫晫
-//    [  Date ]:           Tuesday, September 26, 2017
-//--------------------------------------------------------
-using UnityEngine;
-using System.Collections;
-using UnityEngine.UI;
-using System.Collections.Generic;
-using System;
-using System.Reflection;
-
-namespace Snxxz.UI
-{
-
-    public class WindowAsyncLoad : MonoBehaviour
-    {
-        List<Task> taskQueue = new List<Task>();
-        Task currentTask;
-
-        public bool busy { get { return currentTask != null; } }
-
-        public void PushTask(Task _task)
-        {
-            var exist = false;
-            for (int i = taskQueue.Count - 1; i >= 0; i--)
-            {
-                var task = taskQueue[i];
-                if (task.windowName == _task.windowName)
-                {
-                    exist = true;
-                    break;
-                }
-            }
-
-            if (!exist)
-            {
-                taskQueue.Add(_task);
-            }
-        }
-
-        public void StopTask(string _name)
-        {
-            for (int i = taskQueue.Count - 1; i >= 0; i--)
-            {
-                var task = taskQueue[i];
-                if (task.windowName == _name)
-                {
-                    taskQueue.Remove(task);
-                    break;
-                }
-            }
-
-            if (currentTask != null && currentTask.windowName == _name)
-            {
-                currentTask.Dispose();
-                currentTask = null;
-                NetLinkWin.Hide();
-            }
-        }
-
-        public void StopAllTasks()
-        {
-            if (currentTask != null)
-            {
-                currentTask.Dispose();
-                currentTask = null;
-            }
-
-            taskQueue.Clear();
-            NetLinkWin.Hide();
-        }
-
-        private void LateUpdate()
-        {
-            if (currentTask == null && taskQueue.Count > 0)
-            {
-                currentTask = taskQueue[0];
-                taskQueue.RemoveAt(0);
-                if (currentTask.windowName != "NetLinkWin")
-                {
-                    NetLinkWin.Show(0.5f);
-                }
-
-                UILoader.LoadWindowAsync(currentTask.windowName, (bool ok, UnityEngine.Object _resource) =>
-                {
-                    try
-                    {
-                        if (currentTask != null)
-                        {
-                            currentTask.Report(ok, _resource);
-                            currentTask = null;
-                        }
-                    }
-                    catch (Exception ex)
-                    {
-                        DesignDebug.Log(ex);
-                    }
-                    finally
-                    {
-                        NetLinkWin.Hide();
-                    }
-                });
-            }
-
-        }
-
-        public class TaskGroup
-        {
-            List<Task> tasks = new List<Task>();
-
-            public void AddTask(Task _task)
-            {
-                if (!tasks.Contains(_task))
-                {
-                    tasks.Add(_task);
-                }
-            }
-
-            public void NotifyTaskState(Task _task)
-            {
-                bool allReady = true;
-                for (int i = 0; i < tasks.Count; i++)
-                {
-                    if (!tasks[i].ready)
-                    {
-                        allReady = false;
-                        break;
-                    }
-                }
-
-                if (allReady)
-                {
-                    for (int i = 0; i < tasks.Count; i++)
-                    {
-                        tasks[i].Done();
-                    }
-                }
-            }
-
-        }
-
-        public class Task
-        {
-            public TaskGroup taskGroup { get; private set; }
-            public string windowName { get; private set; }
-            public bool ready = false;
-
-            Action<bool, UnityEngine.Object> callBack;
-            bool result = false;
-            UnityEngine.Object asset;
-
-            public Task(string _windowName, Action<bool, UnityEngine.Object> _callBack)
-            {
-                windowName = _windowName;
-                callBack = _callBack;
-            }
-
-            public void Bind(TaskGroup _task)
-            {
-                taskGroup = _task;
-            }
-
-            public void Report(bool _ok, UnityEngine.Object _object)
-            {
-                result = _ok;
-                asset = _object;
-
-                if (taskGroup != null)
-                {
-                    ready = true;
-                    taskGroup.NotifyTaskState(this);
-                }
-                else
-                {
-                    Done();
-                }
-            }
-
-            public void Dispose()
-            {
-                callBack = null;
-            }
-
-            public void Done()
-            {
-                if (callBack != null)
-                {
-                    callBack(result, asset);
-                    callBack = null;
-                }
-            }
-
-
-        }
-
-    }
-
-}
-
-
-
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Tuesday, September 26, 2017
+//--------------------------------------------------------
+using UnityEngine;
+using System.Collections;
+using UnityEngine.UI;
+using System.Collections.Generic;
+using System;
+using System.Reflection;
+
+namespace Snxxz.UI
+{
+
+    public class WindowAsyncLoad : MonoBehaviour
+    {
+        List<Task> taskQueue = new List<Task>();
+        Task currentTask;
+
+        public bool busy { get { return currentTask != null; } }
+
+        public void PushTask(Task _task)
+        {
+            var exist = false;
+            for (int i = taskQueue.Count - 1; i >= 0; i--)
+            {
+                var task = taskQueue[i];
+                if (task.windowName == _task.windowName)
+                {
+                    exist = true;
+                    break;
+                }
+            }
+
+            if (!exist)
+            {
+                taskQueue.Add(_task);
+            }
+        }
+
+        public void StopTask(string _name)
+        {
+            for (int i = taskQueue.Count - 1; i >= 0; i--)
+            {
+                var task = taskQueue[i];
+                if (task.windowName == _name)
+                {
+                    task.Dispose();
+                    taskQueue.Remove(task);
+                    break;
+                }
+            }
+
+            if (currentTask != null && currentTask.windowName == _name)
+            {
+                currentTask.Dispose();
+                currentTask = null;
+                NetLinkWin.Hide();
+            }
+        }
+
+        public void StopAllTasks()
+        {
+            if (currentTask != null)
+            {
+                currentTask.Dispose();
+                currentTask = null;
+            }
+
+            for (int i = 0; i < taskQueue.Count; i++)
+            {
+                var task = taskQueue[i];
+                task.Dispose();
+            }
+            taskQueue.Clear();
+            NetLinkWin.Hide();
+        }
+
+        private void LateUpdate()
+        {
+            if (currentTask == null && taskQueue.Count > 0)
+            {
+                currentTask = taskQueue[0];
+                taskQueue.RemoveAt(0);
+                if (currentTask.windowName != "NetLinkWin")
+                {
+                    NetLinkWin.Show(0.5f);
+                }
+
+                UILoader.LoadWindowAsync(currentTask.windowName, (bool ok, UnityEngine.Object _resource) =>
+                {
+                    try
+                    {
+                        if (currentTask != null)
+                        {
+                            currentTask.Report(ok, _resource);
+                            currentTask = null;
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        DebugEx.Log(ex);
+                    }
+                    finally
+                    {
+                        NetLinkWin.Hide();
+                    }
+                });
+            }
+
+        }
+
+        public class TaskGroup
+        {
+            List<Task> tasks = new List<Task>();
+
+            public void AddTask(Task _task)
+            {
+                if (!tasks.Contains(_task))
+                {
+                    tasks.Add(_task);
+                }
+            }
+
+            public void RemoveTask(Task _task)
+            {
+                if (tasks.Contains(_task))
+                {
+                    tasks.Remove(_task);
+                }
+            }
+
+            public void NotifyTaskState(Task _task)
+            {
+                bool allReady = true;
+                for (int i = 0; i < tasks.Count; i++)
+                {
+                    if (!tasks[i].ready)
+                    {
+                        allReady = false;
+                        break;
+                    }
+                }
+
+                if (allReady)
+                {
+                    for (int i = 0; i < tasks.Count; i++)
+                    {
+                        tasks[i].Done();
+                    }
+                }
+            }
+
+        }
+
+        public class Task
+        {
+            public TaskGroup taskGroup { get; private set; }
+            public string windowName { get; private set; }
+            public bool ready = false;
+
+            Action<bool, UnityEngine.Object> callBack;
+            bool result = false;
+            UnityEngine.Object asset;
+
+            public Task(string _windowName, Action<bool, UnityEngine.Object> _callBack)
+            {
+                windowName = _windowName;
+                callBack = _callBack;
+            }
+
+            public void Bind(TaskGroup _taskGroup)
+            {
+                taskGroup = _taskGroup;
+            }
+
+            public void Report(bool _ok, UnityEngine.Object _object)
+            {
+                result = _ok;
+                asset = _object;
+
+                if (taskGroup != null)
+                {
+                    ready = true;
+                    taskGroup.NotifyTaskState(this);
+                }
+                else
+                {
+                    Done();
+                }
+            }
+
+            public void Dispose()
+            {
+                callBack = null;
+                if (taskGroup != null)
+                {
+                    taskGroup.RemoveTask(this);
+                }
+            }
+
+            public void Done()
+            {
+                if (callBack != null)
+                {
+                    callBack(result, asset);
+                    callBack = null;
+                }
+            }
+
+
+        }
+
+    }
+
+}
+
+
+

--
Gitblit v1.8.0