具体要求: 我的代码: 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