具体要求:
我的代码:
var
strlist:tstringlist;
begin
strlist := tstringlist.Create; //创建
strlist.LoadFromFile(txtlj); //读取文档
i := strlist.Count;
for i := 1 to strlist.Count do
begin
hang:= strlist.Strings[i-1];
if hang = \'\' then Continue
else
begin
tianjia;// tianjia这个过程里,是一些关于读取到文本的此行的操作,现在这样的话,需要执行完此行后才能继续下一行,我想把这里改为多线程,创建线程后运行,运行结束后自动退出线程,然后主程序接着对下一行文本操作,无需等待.
end;
end;
strlist.Free;
end
PThreadParam =^ThreadParam;
ThreadParam = record
str : string;
end;
function MyThreadFun(var Param: PThreadParam): Integer; stdcall;
var
lineBuf : string;
begin
lineBuf := Param^.str;
//对此linebuf进行后续处理
Result := 0;
end;
var
strlist:tstringlist;
P : ThreadParam;
Id: Dword;
i : integer;
begin
strlist := tstringlist.Create; //创建
strlist.LoadFromFile(txtlj); //读取文档
i := strlist.Count;
for i := 1 to strlist.Count do
begin
//得到文件行缓存数据
hang:= strlist.Strings[i-1];
//忽略注释行
if hang = \'\' then Continue;
//对此行数据进行后续连接处理
P.str := hang;
Createthread(nil, 0, @MyThreadFun, @p, 0, Id);
end;
strlist.Free;
end