Exemple #1
0
    void Update()
    {
        doTranslationAnimation();

        if (m_data != null && sessionMsgList.Count > 0 && Time.realtimeSinceStartup - HandleSessionTime >= 1.0f)
        {
            HandleSessionTime = Time.realtimeSinceStartup;
            if (m_threadCombineJson.GetThreadState() == ThreadState.WaitSleepJoin)
            {
                m_threadCombineJson.AcceptJson(sessionMsgList);
                sessionMsgList.Clear();
            }

            if (sessionJsonObj.readerFlag)
            {
                ResovleSessionJsonResult result = sessionJsonObj.readResovleJsonResult();
                if (result != null)
                {
                    m_data.m_hanoiData.callStats.Children.AddRange(result.DetailResult);
                    var dataInfoMap = result.NavigateResult;
                    GraphItLuaPro.Log(HanoiData.GRAPH_TIMECONSUMING, HanoiData.SUBGRAPH_LUA_TIMECONSUMING_INCLUSIVE, dataInfoMap[HanoiData.SUBGRAPH_LUA_TIMECONSUMING_INCLUSIVE]);
                    GraphItLuaPro.Log(HanoiData.GRAPH_TIMECONSUMING, HanoiData.SUBGRAPH_LUA_TIMECONSUMING_EXCLUSIVE, dataInfoMap[HanoiData.SUBGRAPH_LUA_TIMECONSUMING_EXCLUSIVE]);
                    GraphItLuaPro.Log(HanoiData.GRAPH_TIME_PERCENT, HanoiData.SUBGRAPH_LUA_PERCENT_INCLUSIVE, dataInfoMap[HanoiData.SUBGRAPH_LUA_PERCENT_INCLUSIVE]);
                    GraphItLuaPro.Log(HanoiData.GRAPH_TIME_PERCENT, HanoiData.SUBGRAPH_LUA_PERCENT_EXCLUSIVE, dataInfoMap[HanoiData.SUBGRAPH_LUA_PERCENT_EXCLUSIVE]);
                    Repaint();
                }
            }
        }
    }
Exemple #2
0
    public ResovleSessionJsonResult handleSessionJsonObj(JSONObject jsonContent)
    {
        if (jsonContent == null || jsonContent.IsNull)
        {
            throw new System.Exception("json load error");
        }
        var watch1 = new System.Diagnostics.Stopwatch();

        watch1.Start();
        ResovleSessionJsonResult result = new ResovleSessionJsonResult();
        Dictionary <string, List <DataInfo> > dataInfoMap = new Dictionary <string, List <DataInfo> >();

        dataInfoMap.Add(HanoiData.SUBGRAPH_LUA_TIMECONSUMING_INCLUSIVE, new List <DataInfo>());
        dataInfoMap.Add(HanoiData.SUBGRAPH_LUA_TIMECONSUMING_EXCLUSIVE, new List <DataInfo>());
        dataInfoMap.Add(HanoiData.SUBGRAPH_LUA_PERCENT_INCLUSIVE, new List <DataInfo>());
        dataInfoMap.Add(HanoiData.SUBGRAPH_LUA_PERCENT_EXCLUSIVE, new List <DataInfo>());
        if (jsonContent.type == JSONObject.Type.ARRAY)
        {
            watch1.Reset();
            watch1.Start();
            for (int i = 0; i < jsonContent.list.Count; i++)
            {
                JSONObject j = (JSONObject)jsonContent.list[i];
                handleMsgForNavigationScreen(j, dataInfoMap);
            }
            result.NavigateResult = dataInfoMap;
            watch1.Stop();
            // UnityEngine.Debug.LogFormat("resolve Navigation json {0}", watch1.ElapsedMilliseconds);

            watch1.Reset();
            watch1.Start();
            List <HanoiNode> resultNodeRoot = new List <HanoiNode>();

            for (int i = 0; i < jsonContent.list.Count; i++)
            {
                JSONObject j = (JSONObject)jsonContent.list[i];
                handleMsgForDetailScreen(j, resultNodeRoot);
            }
            watch1.Stop();
            //UnityEngine.Debug.LogFormat("resolve detail json {0}", watch1.ElapsedMilliseconds);
            result.DetailResult = resultNodeRoot;
            return(result);
        }
        return(null);
    }
Exemple #3
0
 public void writeResovleJsonResult(ResovleSessionJsonResult resovleJsonResult)
 {
     lock (this)
     {
         if (readerFlag)
         {
             try
             {
                 Monitor.Wait(this);
             }
             catch (SynchronizationLockException e)
             {
                 Console.WriteLine(e);
             }
             catch (ThreadInterruptedException e)
             {
                 Console.WriteLine(e);
             }
         }
         m_resovleSessionResult = resovleJsonResult;
         readerFlag             = true;
         Monitor.Pulse(this);
     }
 }