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é ?
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é ?
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.
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 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.