读书人

多线程!多线程!多线程!解决方法

发布时间: 2012-03-22 17:43:57 作者: rapoo

多线程!多线程!多线程!
小弟写了一个扫描程序,为了保证扫描速度,用线程方式保存文件。即每获取一张图像,创建一个线程保存,现在有个问题,当扫描量大的时候,会出现某些文件没有保存上的情况,百思不得其解,往高手指教,谢谢!!

[解决办法]
文件名相同而被覆盖了?
[解决办法]
一般情况同步没做好,各个线程相互干扰
[解决办法]
试试先确认每个线程都正常开启了,再确认路径问题,包括文件名是否非法,重名等。
这类问题用打日志的方式查错比较快。
祝楼主好运,嘿嘿
[解决办法]
楼主搞定了么?下面的函数可以在多线程里面打日志

Delphi(Pascal) code
procedure SaveDIYLog(AMsg: string;DIY:string; AddTime: Boolean = False);var  APath: string;  FTextFile: TextFile;begin  if AddTime then    AMsg := DateTimeToStr(Now) + #9 + AMsg  ;  APath := ExtractFilePath(ParamStr(0)) + 'LogFile\';  if not DirectoryExists(APath) then    ForceDirectories(APath);  APath := APath + DIY;  if FileExists(APath) then  begin    AssignFile(FTextFile, APath);    Append(FTextFile);    try      Writeln(FTextFile, Amsg);    finally      CloseFile(FTextFile);    end;  end  else  begin    AssignFile(FTextFile, APath);    Rewrite(FTextFile);    try      Writeln(FTextFile, Amsg);    finally      CloseFile(FTextFile);    end;  end;end;
[解决办法]
探讨
一般情况同步没做好,各个线程相互干扰

读书人网 >.NET

热点推荐