C# 이미지 처리: 이미지 처리 시간을 기록하는 클래스

7727 단어 화상 처리
    class HiPerTimer
    {

        [DllImport("user32.dll")]
        static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

        /// <summary>
        ///            ,    ,         
        /// </summary>
        /// <returns>      </returns>
        public static long GetLastInputTime()
        {
            LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
            vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
            if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
            return Environment.TickCount - (long)vLastInputInfo.dwTime;
        }



        /// <summary>
        ///    win32 API   QueryPerformanceCounter()  
        /// </summary>
        /// <param name="lpPerformanceCount"></param>
        /// <returns>                     </returns>
        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);
        
        
        /// <summary>
        ///    win32 API   QueryPerformanceFrequency()  
        /// </summary>
        /// <param name="lpFrequency">      </param>
        /// <returns>              </returns>
        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceFrequency(out long lpFrequency);

        private long starTime, stopTime;
        private long freq;
        public HiPerTimer()
        {
            starTime = 0;
            stopTime = 0;
            QueryPerformanceFrequency(out freq);
            //{
                
            //}
        }



        public void Start()
        {
            //       
            Thread.Sleep(0);
            stopTime = 0;
            QueryPerformanceCounter(out starTime);
        }

        public void Stop()
        {
            QueryPerformanceCounter(out stopTime);
        }


        public double DurationMs
        {
            get {
                return (double)((stopTime - starTime) * 1000 / (double)freq);

            }
        }


    }

두 부분 중 하나는 마지막 입력 시간 함수이고 하나는 운행 시간 함수이며 단위는 ms이다
사용 방법:
마지막 입력(마우스 또는 키보드)까지의 간격
HiPerTimer.GetLastInputTime(); //   ms

,
HiPerTimer timer = new HiPerTimer();


, timer.Start();
,timer.Stop();

timer.DurationMs ms


좋은 웹페이지 즐겨찾기