下面是毫秒级控件的代码,可惜我一点也看不懂。
大家能帮忙说说思路吗,我想用.NET写个。
unit mwFastTime;interfaceuses
  SysUtils, Windows, Classes;type
  TmwFastTime = class(TComponent)
  private
    c, n1, n2: TLargeInteger;
    function GetElapsedTime: ShortString;
    function GetElapsed: Extended;
  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    Property Elapsed: Extended read GetElapsed;
    Property ElapsedTime: ShortString read GetElapsedTime;
    Procedure Start;
    Procedure Stop;
  published
    Property Name;
    Property Tag;
  end;procedure Register;
implementation{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}procedure Register;
begin
  RegisterComponents(''mw'', [TmwFastTime]);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}constructor TmwFastTime.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  QueryPerformanceFrequency(c);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}destructor TmwFastTime.Destroy;
begin
  inherited Destroy;
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}function TmwFastTime.GetElapsed: Extended;
begin
{$IFDEF VER120}
  Result:= (_LARGE_INTEGER(n2).QuadPart - _LARGE_INTEGER(n1).QuadPart) / _LARGE_INTEGER(c).QuadPart;
{$ELSE}
  Result:= (n2.QuadPart - n1.QuadPart) / c.QuadPart;
{$ENDIF}
end;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}function TmwFastTime.GetElapsedTime: ShortString;
begin
{$IFDEF VER120}
  Result := format(''Seconds: %g'', [GetElapsed]);
{$ELSE}
  Result := format(''Seconds: %g'', [GetElapsed]);
{$ENDIF}
end;{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}Procedure TmwFastTime.Start;
begin
  QueryPerformanceCounter(n1);
end;
{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}Procedure TmwFastTime.Stop;
begin
  QueryPerformanceCounter(n2);
end;end.