.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.StopWatch:

==========================================================================================================================================
|phoenix_title|  **wx.StopWatch**
==========================================================================================================================================

The :ref:`wx.StopWatch`  class allow you to measure time intervals. 
         

For example, you may use it to measure the time elapsed by some function: 

::

    sw = wx.StopWatch()
    CallLongRunningFunction()
    wx.LogMessage("The long running function took %dms to execute", sw.Time())
    sw.Pause()

    # stopwatch is stopped now ...
    sw.Resume()
    CallLongRunningFunction()
    wx.LogMessage("And calling it twice took %dms in all", sw.Time())



Since wxWidgets 2.9.3 this class uses  ``QueryPerformanceCounter()``   function under MSW to measure the elapsed time. This provides higher precision than the usual timer functions. 








         



.. seealso:: :ref:`wx.Timer`    







|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>StopWatch</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.StopWatch_inheritance.svg" alt="Inheritance diagram of StopWatch" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.StopWatch.html" title="The wx.StopWatch  class allow you to measure time intervals." alt="" coords="5,5,136,34"/> </map> 
   </p>
   </div>

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.StopWatch.__init__`                                                   Constructor.
:meth:`~wx.StopWatch.Pause`                                                      Pauses the stop watch.
:meth:`~wx.StopWatch.Resume`                                                     Resumes the stop watch which had been paused with :meth:`~StopWatch.Pause` .
:meth:`~wx.StopWatch.Start`                                                      (Re)starts the stop watch with a given initial value.
:meth:`~wx.StopWatch.Time`                                                       Returns the time in milliseconds since the start (or restart) or the last call of :meth:`~StopWatch.Pause` .
:meth:`~wx.StopWatch.TimeInMicro`                                                Returns elapsed time in microseconds.
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.StopWatch(object)

   **Possible constructors**::

       StopWatch() -> None
       
   
   The StopWatch class allow you to measure time intervals.



   .. method:: __init__(self)

      Constructor. 
                 

      This starts the stop watch. 
                 

      :rtype: `None`     








   .. method:: Pause(self)

      Pauses the stop watch. 
                 

      Call :meth:`Resume`   to resume time measuring again. 

      If this method is called several times,  :meth:`Resume`   must be called the same number of times to really resume the stop watch. You may, however, call  :meth:`Start`   to resume it unconditionally. 
                 

      :rtype: `None`     








   .. method:: Resume(self)

      Resumes the stop watch which had been paused with :meth:`Pause` . 
                 

      :rtype: `None`     








   .. method:: Start(self, milliseconds=0)

      (Re)starts the stop watch with a given initial value. 
                 

      The stopwatch will always be running after calling :meth:`Start` , even if :meth:`Pause`   had been called before and even if it had been called multiple times. 
                 


      :param `milliseconds`: 
      :type `milliseconds`: long




      :rtype: `None`     








   .. method:: Time(self)

      Returns the time in milliseconds since the start (or restart) or the last call of :meth:`Pause` . 
                 


                

      :rtype: `int`







      .. seealso:: :meth:`TimeInMicro`     








   .. method:: TimeInMicro(self)

      Returns elapsed time in microseconds. 
                 

      This method is similar to :meth:`Time`   but returns the elapsed time in microseconds and not milliseconds. Notice that not all platforms really can measure times with this precision. 


                

      :rtype: `int`







      .. versionadded:: 2.9.3 
     







