// Update is called once per frame void OnUpdate() { while (true) { lock (m_lockObject) { if (events.Count > 0) { ThreadEvent e = events.Dequeue(); try { // switch (e.Key) { // case NotiConst.UPDATE_EXTRACT: { //解压文件 // OnExtractFile(e.evParams); // } // break; // case NotiConst.UPDATE_DOWNLOAD: { //下载文件 // OnDownloadFile(e.evParams); // } // break; // } } catch (System.Exception ex) { UnityEngine.Debug.LogError(ex.Message); } } } Thread.Sleep(1); } }
/// <summary> /// 添加到事件队列 /// </summary> public void AddEvent(ThreadEvent ev, Action <NotiData> func) { lock (m_lockObject) { this.func = func; events.Enqueue(ev); } }
/// <summary> /// 线程下载 /// </summary> void BeginDownload(string url, string file) { //线程下载 object[] param = new object[2] { url, file }; ThreadEvent ev = new ThreadEvent(); ev.Key = MsgType.TYPE_UPDATE_DOWNLOAD; ev.evParams.AddRange(param); GameApp.threadManager.AddEvent(ev, OnThreadCompleted); //线程下载 }