3 votes

Utiliser le processeur à 100%

J'ai besoin d'une fonction qui utilise mon processeur à 100%. J'ai un processeur à un seul coeur, des idées ?

Le fil de discussion doit-il être placé en haute priorité ?

7voto

Darin Dimitrov Points 528142

Une boucle (infinie) fait généralement l'affaire :

while true do begin

end;

Il est évident que le fait de forcer l'unité centrale à atteindre 100 % sans rien faire d'utile ne devrait être fait qu'à des fins académiques et sur votre propre matériel, et jamais dans une application réelle que vous avez l'intention d'expédier.

5voto

user246408 Points 20110

Par exemple, par le prochain fil :

unit Unit2;

interface

uses
  Classes;

type
  TLoadThread = class(TThread)
  public
    class var Stop: Boolean;
  protected
    procedure Execute; override;
  public
    constructor Create;
  end;

implementation

constructor TLoadThread.Create;
begin
  inherited Create;
  FreeOnTerminate:= True;
end;

procedure TLoadThread.Execute;
begin
  repeat until Stop;
end;

end.

Un exemple d'utilisation :

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure LoadCPU;
begin
  TLoadThread.Stop:= False;
  TLoadThread.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LoadCPU;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  TLoadThread.Stop:= True;
end;

si votre CPU a N cœurs, cliquez sur Button1 N fois pour atteindre une charge CPU de 100% ; pas besoin d'augmenter la priorité des threads.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X