多线程!多线程!多线程!
小弟写了一个扫描程序,为了保证扫描速度,用线程方式保存文件。即每获取一张图像,创建一个线程保存,现在有个问题,当扫描量大的时候,会出现某些文件没有保存上的情况,百思不得其解,往高手指教,谢谢!!
[解决办法]
文件名相同而被覆盖了?
[解决办法]
一般情况同步没做好,各个线程相互干扰
[解决办法]
试试先确认每个线程都正常开启了,再确认路径问题,包括文件名是否非法,重名等。
这类问题用打日志的方式查错比较快。
祝楼主好运,嘿嘿
[解决办法]
楼主搞定了么?下面的函数可以在多线程里面打日志
- 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;
[解决办法]