See #16744. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@78306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        stopwatch.h
 | 
						|
// Purpose:     interface of wxStopWatch
 | 
						|
// Author:      wxWidgets team
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
/**
 | 
						|
    @class wxStopWatch
 | 
						|
 | 
						|
    The wxStopWatch class allow you to measure time intervals.
 | 
						|
 | 
						|
    For example, you may use it to measure the time elapsed by some function:
 | 
						|
 | 
						|
    @code
 | 
						|
        wxStopWatch sw;
 | 
						|
        CallLongRunningFunction();
 | 
						|
        wxLogMessage("The long running function took %ldms to execute",
 | 
						|
                     sw.Time());
 | 
						|
        sw.Pause();
 | 
						|
        ... stopwatch is stopped now ...
 | 
						|
        sw.Resume();
 | 
						|
        CallLongRunningFunction();
 | 
						|
        wxLogMessage("And calling it twice took %ldms in all", sw.Time());
 | 
						|
    @endcode
 | 
						|
 | 
						|
    Since wxWidgets 2.9.3 this class uses @c QueryPerformanceCounter()
 | 
						|
    function under MSW to measure the elapsed time. It provides higher
 | 
						|
    precision than the usual timer functions but can suffer from bugs in its
 | 
						|
    implementation in some Windows XP versions. If you encounter such problems,
 | 
						|
    installing a Microsoft hot fix from http://support.microsoft.com/?id=896256
 | 
						|
    could be necessary.
 | 
						|
 | 
						|
    @library{wxbase}
 | 
						|
    @category{misc}
 | 
						|
 | 
						|
    @see wxTimer
 | 
						|
*/
 | 
						|
class wxStopWatch
 | 
						|
{
 | 
						|
public:
 | 
						|
    /**
 | 
						|
        Constructor. This starts the stop watch.
 | 
						|
    */
 | 
						|
    wxStopWatch();
 | 
						|
 | 
						|
    /**
 | 
						|
        Pauses the stop watch. Call Resume() to resume time measuring again.
 | 
						|
 | 
						|
        If this method is called several times, @c Resume() must be called the same
 | 
						|
        number of times to really resume the stop watch. You may, however, call
 | 
						|
        Start() to resume it unconditionally.
 | 
						|
    */
 | 
						|
    void Pause();
 | 
						|
 | 
						|
    /**
 | 
						|
        Resumes the stop watch which had been paused with Pause().
 | 
						|
    */
 | 
						|
    void Resume();
 | 
						|
 | 
						|
    /**
 | 
						|
        (Re)starts the stop watch with a given initial value.
 | 
						|
 | 
						|
        The stopwatch will always be running after calling Start(), even if
 | 
						|
        Pause() had been called before and even if it had been called multiple
 | 
						|
        times.
 | 
						|
    */
 | 
						|
    void Start(long milliseconds = 0);
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns the time in milliseconds since the start (or restart) or the last
 | 
						|
        call of Pause().
 | 
						|
 | 
						|
        @see TimeInMicro()
 | 
						|
    */
 | 
						|
    long Time() const;
 | 
						|
 | 
						|
    /**
 | 
						|
        Returns elapsed time in microseconds.
 | 
						|
 | 
						|
        This method is similar to Time() but returns the elapsed time in
 | 
						|
        microseconds and not milliseconds. Notice that not all platforms really
 | 
						|
        can measure times with this precision.
 | 
						|
 | 
						|
        @since 2.9.3
 | 
						|
     */
 | 
						|
    wxLongLong TimeInMicro() const;
 | 
						|
};
 | 
						|
 |