我需要一个函数,可以让我的CPU占用率达到100%。我有一颗单核心的CPU,有什么建议吗?
这个线程需要设置高优先级吗?
我需要一个函数,可以让我的CPU占用率达到100%。我有一颗单核心的CPU,有什么建议吗?
这个线程需要设置高优先级吗?
一个(无限)循环通常可以胜任:
while true do begin
end;
显然,强制CPU在不执行任何有用操作的情况下达到100%的使用率只应该用于学术目的,并且只能在自己的硬件上进行,绝不能在任何你打算发布的真实应用程序中使用。
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.
一个使用示例:
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;
如果你的CPU有N个核心,请点击按钮1
N次以达到100%的CPU负载;无需增加线程优先级。