zoukankan      html  css  js  c++  java
  • 多线程读文本行

    具体要求:
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    我的代码:
    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
  • 相关阅读:
    Oracle建立表空间和用户
    Session详解
    Spring中AOP方式实现多数据源切换
    Filter(过滤器)学习
    不用加号运算
    数字转化为十六进制
    1px像素问题(移动端经典问题)
    对postcss-plugin-px2rem的研究
    npm cache clean --force
    对async/await的研究
  • 原文地址:https://www.cnblogs.com/moonwind/p/4504834.html
Copyright © 2011-2022 走看看