Beispiel #1
0
        // 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);
            }
        }
Beispiel #2
0
 /// <summary>
 /// 添加到事件队列
 /// </summary>
 public void AddEvent(ThreadEvent ev, Action <NotiData> func)
 {
     lock (m_lockObject) {
         this.func = func;
         events.Enqueue(ev);
     }
 }
Beispiel #3
0
        /// <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);   //线程下载
        }