//------------------------------------------------------------------------- private void Working(out string shId) { shId = ""; var fileName2 = utils.GetFileForRecognize(fileName, OcrAppConfig.TempFramesFolder, false); if (fileName != fileName2) { log.LogMessage("___" + fileName + " convert to " + fileName2); fileName = fileName2; } if (String.IsNullOrEmpty(fileName)) { log.LogMessage("___" + "Incorrect fileName in ProcessingTempFrameFile.DoWork"); return; } var name = Path.GetFileName(fileName); //Recognize rec = new Recognize(fileName, defaults, cancellationToken, true, false);//для нормализации в основном потоке Recognize rec = new Recognize(fileName, defaults, cancellationToken, true, true);//для нормализации в фоновых потоках rec.LastSheetIdentifier = lastSheetIdentifier; //if (defaults.MoveToNextProccessingFolderOnSheetIdentifierError) //{ // utils.MoveBadFile(OcrAppConfig.TempFramesFolder, defaults.ManualNextProccessingFolder, fileName,rec. Audit, rec.Exception.Message);//сохраняем файл в папку для дальнейшей обработки и удаляем из ТЕМПА // File.Delete(Path.Combine(OcrAppConfig.TempFramesFolder, fileName)); //} //else //{ // errorFiles.Add(fileName); //} if (rec.Exception != null) { log.LogMessage(rec.Exception); return; } string qrCodeText = ""; if (!cancellationToken.IsCancellationRequested) { log.LogMessage("Start " + name + " Page " + rec.Audit.sourcePage.ToString()); rec.RecognizeAuto(ref qrCodeText); } if (!cancellationToken.IsCancellationRequested) { if (rec.Exception == null) { var auditFileName = utils.GetFileAuditName(fileName); ioHelper.DeleteFileExt(false, fileName, false);//!!!при "true" - Процесс не может получить доступ к файлу ioHelper.DeleteFileExt(false, auditFileName); log.LogMessage("Finish " + name + " Page " + rec.Audit.sourcePage.ToString()); } else { log.LogMessage(rec.Exception); lock (errorFiles) { if (errorFiles.Contains(fileName)) { //utils.MoveBadFile(OcrAppConfig.TempFramesFolder, defaults.ManualNextProccessingFolder, fileName, rec.Audit, rec.Exception.Message);//сохраняем файл в папку для дальнейшей обработки и удаляем из ТЕМПА //log.LogMessage("File " + name + " was moved to '" + defaults.ManualNextProccessingFolder + "'"); utils.MoveBadFile(OcrAppConfig.TempFramesFolder, defaults.ErrorFolder, fileName, rec.Audit, rec.Exception.Message);//сохраняем файл в папку для дальнейшей обработки и удаляем из ТЕМПА log.LogMessage("File " + name + " was moved to '" + defaults.ErrorFolder + "'"); errorFiles.Remove(fileName); } else { errorFiles.Add(fileName); log.LogMessage("File " + name + " will be restarted"); } } } } shId = rec.LastSheetIdentifier; }