Esempio n. 1
0
 private async Task <ConcurrentBag <FileValue> > Calculate(ConcurrentBag <string> dirPaths)
 {
     return(await Task.Run(() =>
     {
         try
         {
             fileReader = new FilesHandlerLittle();
             fileReader.ProcessNotifier += Main_ProcessEventNotifier;
             fileReader.FileCompleteNotifier += Main_FileCompleteNotifier;
             var a = fileReader.CalculateParallel(dirPaths);
             return a.Result;
         }
         catch (Exception e)
         {
             if (e.InnerException is StopException)
             {
                 throw e.InnerException;
             }
             throw e;
         }
         finally
         {
             fileReader.ProcessNotifier -= Main_ProcessEventNotifier;
             fileReader.FileCompleteNotifier -= Main_FileCompleteNotifier;
             fileReader = null;
             dirPaths = new ConcurrentBag <string>();
             GC.Collect();
         }
     }));
 }