Exemplo n.º 1
0
    ///// <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);
        }
    }
Exemplo n.º 2
0
    //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);
        }
    }
Exemplo n.º 3
0
    /// <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); //线程下载
    }