System.Diagnostics.TStopwatch

From RAD Studio API Documentation
Jump to: navigation, search

Delphi

  TStopwatch = record
  strict private
    class var FFrequency: Int64;
    class var FIsHighResolution: Boolean;
    class var TickFrequency: Double;
  strict private
    FElapsed: Int64;
    FRunning: Boolean;
    FStartTimeStamp: Int64;
    function GetElapsed: TTimeSpan;
    function GetElapsedDateTimeTicks: Int64;
    function GetElapsedMilliseconds: Int64;
    function GetElapsedTicks: Int64;
    class procedure InitStopwatchType; static;
  public
    class function Create: TStopwatch; static;
    class function GetTimeStamp: Int64; static;
    procedure Reset;
    procedure Start;
    class function StartNew: TStopwatch; static;
    procedure Stop;
    property Elapsed: TTimeSpan read GetElapsed;
    property ElapsedMilliseconds: Int64 read GetElapsedMilliseconds;
    property ElapsedTicks: Int64 read GetElapsedTicks;
    class property Frequency: Int64 read FFrequency;
    class property IsHighResolution: Boolean read FIsHighResolution;
    property IsRunning: Boolean read FRunning;
  end;

C++

struct DECLSPEC_DRECORD TStopwatch
{
private:
    static __int64 FFrequency;
    static bool FIsHighResolution;
    static double TickFrequency;
    __int64 FElapsed;
    bool FRunning;
    __int64 FStartTimeStamp;
    System::Timespan::TTimeSpan __fastcall GetElapsed(void);
    __int64 __fastcall GetElapsedDateTimeTicks(void);
    __int64 __fastcall GetElapsedMilliseconds(void);
    __int64 __fastcall GetElapsedTicks(void);
    static void __fastcall InitStopwatchType();
public:
    static TStopwatch __fastcall Create();
    static __int64 __fastcall GetTimeStamp();
    void __fastcall Reset(void);
    void __fastcall Start(void);
    static TStopwatch __fastcall StartNew();
    void __fastcall Stop(void);
    __property System::Timespan::TTimeSpan Elapsed = {read=GetElapsed};
    __property __int64 ElapsedMilliseconds = {read=GetElapsedMilliseconds};
    __property __int64 ElapsedTicks = {read=GetElapsedTicks};
    /* static */ __property __int64 Frequency = {read=FFrequency};
    /* static */ __property bool IsHighResolution = {read=FIsHighResolution};
    __property bool IsRunning = {read=FRunning};
};

Properties

Type Visibility Source Unit Parent
record
struct
public
System.Diagnostics.pas
System.Diagnostics.hpp
System.Diagnostics System.Diagnostics

Description

Provides a high-resolution stopwatch implementation.

Use TStopwatch to obtain access to high-resolution timers that can be used to monitor the time spent performing some operations. TStopwatch uses operating system-dependent functionality to gain access to high-resolution timers, if available; otherwise, the usual timers are used.

TStopwatch is not a class but still requires explicit initialization. Call the StartNew or Create method to initialize a TStopwatch value.

See Also