141ed8034b
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;
|
|
};
|
|
|