多线程的问题 大家帮我看看错在哪里?
BCBX 2004-08-30 11:09:57 unit Unit2;
interface
uses
Classes,StdCtrls;
type
TFuckYou = class(TThread)
constructor Create( var Memo1:TMemo;FuckStanm:String);
private
protected
procedure Execute; override;
procedure WriteFuckYou();
public
M_Memo:^TMemo;
M_FuckSay:String;
end;
implementation
constructor TFuckYou.Create( var Memo1:TMemo; FuckStanm:string);
begin
M_Memo:=@Memo1; //AV 错误
M_FuckSay:=FuckStanm;
Suspend();
FreeOnTerminate:=True;
end;
procedure TFuckYou.WriteFuckYou();
begin
M_Memo.Lines.Add(M_FuckSay);
end;
procedure TFuckYou.Execute;
begin
Synchronize(WriteFuckYou);
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Unit2;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
FuckA,FuckB:TFuckYou;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FuckA.Create(Memo1,'Fuck Your Mother');
FuckB.Create(Memo1,'Fuck Your!');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
FuckA.Resume();
FuckB.Resume();
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FuckA.Terminate();
FuckB.Terminate();
end;
end.
得到了正确答案分会加上去的. 我这样是避免浪费