Exemple #1
0
        /// <summary>
        /// 运行测试
        /// </summary>
        /// <param name="iteration">重复次数</param>
        /// <param name="name">名称</param>
        /// <param name="predicate">测试函数</param>
        /// <returns>包含测试结果的<see cref="CodeTimerResult"/></returns>
        public static CodeTimerResult Run(int iteration, string name, Action predicate)
        {
            var _ctx_priority = System.Threading.Thread.CurrentThread.Priority;

            System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.Highest;

            var result = new CodeTimerResult()
            {
                Title = name
            };

            predicate();

            result.GetSnapshotBefore();
            for (var i = 0; i < iteration; i++)
            {
                predicate();
            }
            result.GetSnapshotAfter();

            //restore environment
            System.Threading.Thread.CurrentThread.Priority = _ctx_priority;

            return(result);
        }
		/// <summary>
		/// 运行测试
		/// </summary>
		/// <param name="iteration">重复次数</param>
		/// <param name="name">名称</param>
		/// <param name="predicate">测试函数</param>
		/// <returns>包含测试结果的<see cref="CodeTimerResult"/></returns>
		public static CodeTimerResult Run(int iteration, string name, Action predicate)
		{
			var _ctx_priority = System.Threading.Thread.CurrentThread.Priority;
			System.Threading.Thread.CurrentThread.Priority = System.Threading.ThreadPriority.Highest;

			var result = new CodeTimerResult() { Title = name };
			predicate();

			result.GetSnapshotBefore();
			for (var i = 0; i < iteration; i++) predicate();
			result.GetSnapshotAfter();

			//restore environment
			System.Threading.Thread.CurrentThread.Priority = _ctx_priority;

			return result;
		}