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(); } } } }
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); }
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); } }