多线程遇到的问题
小弟的多线程模块
unit Unit2;
interface
uses
Classes,ScktComp;
type
TMyThread = class(TThread)
private
{ Private declarations }
MyServer: TServerSocket;
Data: string;
SN: integer;
protected
procedure Execute; override;
procedure SendText;
public
constructor Create(Sck:TServerSocket;Dat:string);
end;
var
MyThread: TMyThread;
implementation
constructor TMyThread.Create(Sck:TServerSocket;Dat:string);
begin
inherited Create(false);
myserver:=sck; //在主窗体用mysthread:=mythread.Create(Server,text)调用,myserver:=sck;这一句就出错!!!为什么啊,我已经被折磨两天了!!!
Data:=dat;
FreeOnTerminate:=true;
end;
procedure TMyThread.SendText;
begin
myserver.Socket.Connections[SN].SendText(data);
end;
procedure TMyThread.Execute;
var
i:integer;
begin
for i:=0 to myserver.Socket.ActiveConnections-1 do
begin
SN:=i;
synchronize(SendText);
if Terminated then exit;
end;
end;
end.
问题点数:20、回复次数:3Top
1 楼copy_paste(木石三)回复于 2001-05-31 22:55:00 得分 20
constructor TMyThread.Create(Sck:TServerSocket;Dat:string);
begin
inherited Create(false);
myserver:=sck; //在主窗体用mysthread:=mythread.Create(Server,text)调用,myserver:=sck;这一句就出错!!!为什么啊,我已经被折磨两天了!!!
Data:=dat;
FreeOnTerminate:=true;
end;
主窗体调用应该是:
myThread := TMyThread.Create(Server, Text);
//myThread是unit2线程变量,
//TMyThread是类
Top
2 楼jacksoft(小半)回复于 2001-05-31 23:02:00 得分 0
mysthread 是我在主窗体声明的Tthread 应该不会有错吧,我试试先
Top
3 楼jacksoft(小半)回复于 2001-05-31 23:13:00 得分 0
试了一下,真的能行,我今天终于能安安稳稳地睡一下了。送上20分表示感谢,我的分也不多,剩下的只有一位数了,嘻嘻。顺便问一下,我这样创建一个线程,有意义吗?
Top




