关于网友提出的“ 关于线程的基础代码”问题疑问,本网通过在网上对“ 关于线程的基础代码”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 关于线程的基础代码描述:
帮我看段代码是哪错了,我新手,程序可以编译,但是运行时候就报错,是内存方面的错误
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
athread=class(TThread)
private
public
procedure buttonclick;
procedure execute;override;
constructor create(CreateSuspended: Boolean);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure athread.execute;
begin
showmessage('aaa');
Synchronize(buttonclick);
end;
procedure athread.buttonclick;
begin
form1.Button1.Click;
end;
constructor athread.create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended); ;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if strtoint(copy(edit1.text,length(edit1.text)-1,1)) mod 2 <>0 then
edit1.text:=inttostr(strtoint(edit1.text)+1);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
a:athread;
begin
a.create(true);
a.Resume;
end;
end.
解决方案1:
a.create(true);