Changeset 6 for trunk/UDriveScan.pas
- Timestamp:
- Mar 30, 2016, 10:50:22 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UDriveScan.pas
r5 r6 54 54 implementation 55 55 56 resourcestring 57 SUnknownRunMode = 'Unknown run mode'; 58 56 59 57 60 { TScanThread } … … 82 85 procedure TDriveScan.Start; 83 86 begin 84 ScanThread := TScanThread.Create(True); 85 ScanThread.Scan := Self; 86 ScanThread.Start; 87 if Terminated then begin 88 Terminated := False; 89 ScanThread := TScanThread.Create(True); 90 ScanThread.Scan := Self; 91 ScanThread.Start; 92 end; 87 93 end; 88 94 … … 120 126 if Mode = rmRead then RealSize := F.Read(Buffer[0], SectorSize) 121 127 else if Mode = rmWrite then RealSize := F.Write(Buffer[0], SectorSize) 122 else raise Exception.Create( 'Unknwon run mode');128 else raise Exception.Create(SUnknownRunMode); 123 129 end; 124 130 finally … … 144 150 procedure TDriveScan.Stop; 145 151 begin 146 Terminated := True; 147 ScanThread.Terminate; 148 ScanThread.WaitFor; 149 FreeAndNil(ScanThread); 152 if not Terminated then begin 153 Terminated := True; 154 ScanThread.Terminate; 155 ScanThread.WaitFor; 156 FreeAndNil(ScanThread); 157 end; 150 158 end; 151 159 … … 160 168 destructor TDriveScan.Destroy; 161 169 begin 170 Stop; 162 171 FreeAndNil(BlockMap); 163 172 FreeAndNil(Lock);
Note:
See TracChangeset
for help on using the changeset viewer.