Bonjour,
je cherche à optimiser cette methode :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | private static Dispatcher dGui = Dispatcher.CurrentDispatcher; public static void Compress(string pathNotCompress, string pathCompress, Action<bool, string> Finish, bool highCompress = false) { if (!File.Exists(pathNotCompress)) { throw new FileNotFoundException(pathNotCompress + " is not found !"); } Exception ex = null; Thread tCompress = new Thread(new ThreadStart(() => { try { FileStream sFileNotCompress = new FileStream(pathNotCompress, FileMode.Open, FileAccess.Read); FileStream sFileCompress = new FileStream(pathCompress, FileMode.Create); Compress(sFileCompress, sFileNotCompress, highCompress); sFileCompress.Close(); sFileNotCompress.Close(); } catch (Exception e) { ex = e; } })); Thread tFinish = new Thread(new ThreadStart(() => { tCompress.Start(); tCompress.Join(); dGui.Invoke(() => { Finish(ex == null ? false : true, ex == null ? "" : ex.ToString()); }); })); tFinish.Start(); } |
Elle doit permettre d'effectuer la compression, dans un autre thread que celui de l'interface graphique et exécuter à la fin Finish.
Votre aide me sera précieuse. Urgau
+0
-0