高分悬赏!多线程程序为什么老出现错误,在线等待!!(200分)

  • 主题发起人 主题发起人 qin_sir
  • 开始时间 开始时间
Q

qin_sir

Unregistered / Unconfirmed
GUEST, unregistred user!
这是我的thread:
unit SendMailThread;

interface

uses
Classes,Dialogs;

type
SendMail2Thread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;

implementation
uses MailUnit,NewMailUnit;


procedure SendMail2Thread.Execute;
begin

FreeOnTerminate:=True;
MailForm.SendMail(NewMailForm.SmtpServer,NewMailForm.MailMessage);
end;

end.

在NewMailUnit中有smtpserver和mailmessage全局变量,并且都是变量,使用如下:
for i:=0 to MailList.count -1 do
begin
TheOneThread:=SendMail2Thread.create(False);
end;
这个程序老是报错,不知道错在什么地方了,各位帮忙
 
我的msn:xiaobqin@hotmail.com,发邮件或是聊聊都可以,只要你能给个解决方案,就给分
嫌分少的话,可以再加
 
没人回答???
 
type threads=class (tthread)
lab:tlabel;
cur: integer;
max:integer;
private
procedure init ;
protected
procedure execute;override ;
public
constructor create(l:tlabel;m:integer);
end;
var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
with threads.create(label1,1000000) do
end;

{ threads }

constructor threads.create(l: tlabel; m: integer);
begin
FreeOnTerminate:=true;
lab:=l;
max:=m;
inherited create(false);
end;

procedure threads.execute;
var
i:integer;
begin
for i:=0 to max do
begin
if not Terminated then
Synchronize(init);
cur:=i;
end;

end;

procedure threads.init;
begin
lab.Caption:=inttostr(cur);
end;

end.
 
胡乱粘了段代码,顺便帮你up
你可以看看C:/Program Files/Borland/Delphi5/Demos/Threads里的程序
其实我也不懂,呵呵
 
上面的就是一个简单线程写法,再看看你的,就知道了,
 
主要是你的全局变量smtpserver和mailmessage是怎么声明的??????
是什么类型,如果是类应该进行初始化??????
还有你的MailForm的SendMail方法是怎么实现的??
 
多人接受答案了。
 
后退
顶部