/// <summary>
        /// 结束监控
        /// </summary>
        /// <returns>监控数据</returns>
        public MonitorData EndMonitor()
        {
            float endTime   = Time.realtimeSinceStartup;
            long  endMemory = GC.GetTotalMemory(false);
            int   endGC     = GC.CollectionCount(0);

            MonitorData data = new MonitorData();

            data.Name            = _monitorName;
            data.Elapsed         = endTime - _monitorBeginTime;
            data.MemoryIncrement = endMemory - _monitorBeginMemory;
            data.GCCount         = endGC - _monitorBeginGC;
            return(data);
        }
        /// <summary>
        /// 监控中执行方法
        /// </summary>
        /// <param name="function">方法</param>
        /// <param name="name">监控名称</param>
        /// <returns>监控数据</returns>
        public MonitorData MonitorExecute(HTFAction function, string name = null)
        {
            float beginTime   = Time.realtimeSinceStartup;
            long  beginMemory = GC.GetTotalMemory(false);
            int   beginGC     = GC.CollectionCount(0);

            function();

            float endTime   = Time.realtimeSinceStartup;
            long  endMemory = GC.GetTotalMemory(false);
            int   endGC     = GC.CollectionCount(0);

            MonitorData data = new MonitorData();

            data.Name            = string.IsNullOrEmpty(name) ? function.Method.Name : name;
            data.Elapsed         = endTime - beginTime;
            data.MemoryIncrement = endMemory - beginMemory;
            data.GCCount         = endGC - beginGC;
            return(data);
        }