///// <summary> ///// 通知事件 ///// </summary> ///// <param name="data"></param> //private void OnSyncEvent(NewNotiData data) //{ // if (func != null) // func(data); //回调逻辑层 //} // Update is called once per frame void OnUpdate() { while (true) { lock (m_lockObject) { if (events.Count > 0) { DownLoadEvent e = events.Dequeue(); try { switch (e.State) { case DownLoadState.Downloading: OnDownloadFile(e.evParams); break; } } catch (Exception ex) { UnityEngine.Debug.LogError(ex.Message); } } } Thread.Sleep(1); } }
//void Awake() //{ // //m_SyncEvent = OnSyncEvent; // thread = new Thread(OnUpdate); //} //// Use this for initialization //void Start() //{ // thread.Start(); //} /// <summary> /// 添加到事件队列 /// </summary> /// <param name="ev"></param> /// <param name="fc"></param> public void AddEvent(DownLoadEvent ev, Action <NewNotiData> fc) { lock (m_lockObject) { func = fc; events.Enqueue(ev); } }
/// <summary> /// 线程下载 /// </summary> void BeginDownload(string url, string file) { //线程下载 object[] param = new object[2] { url, file }; DownLoadEvent ev = new DownLoadEvent(); ev.State = DownLoadState.Downloading; ev.evParams.AddRange(param); m_DownLoadManager.AddEvent(ev, OnThreadCompleted); //ThreadEvent ev = new ThreadEvent(); //ev.Key = NotiConst.UPDATE_DOWNLOAD; //ev.evParams.AddRange(param); //ThreadManager.AddEvent(ev, OnThreadCompleted); //线程下载 }