提示コードですが buttonConvert_Click
関数の内部ですがthis.Invokeにコードが推移しませんこれはなぜでしょうか?
参考サイト:https://www.codeproject.com/Questions/66345/Invoking-not-working
cs
private void Process(SemaphoreSlim slim,string path,string ext) { slim.Wait(); string file = Path.ChangeExtension(path, ext); ImageMagick.MagickImage img = new ImageMagick.MagickImage(path); img.Write(file); img.Dispose(); slim.Release(); } List<Task> taskList = new List<Task>(); private void buttonConvert_Click(object sender, EventArgs e) { Stopwatch sw = new Stopwatch(); sw.Start(); var slim = new SemaphoreSlim(3); foreach (string path in filePathList) { taskList.Add(Task.Factory.StartNew(() => { Process(slim, path,".jpeg"); Debug.WriteLine("ああああ"); this.Invoke((Action)(() => { progressBar_float += progressBarPerFile; progressBar.Value = (int)progressBar_float; Debug.WriteLine("いいい"); })); Debug.WriteLine("aaaaaaaaaaaaaaa" + progressBar.Value); })); } Task.WhenAll(taskList).Wait(); slim.Dispose(); progressBar.Value = 0; sw.Stop(); TimeSpan ts = sw.Elapsed; Debug.WriteLine(ts.TotalSeconds +"."+ ts.Milliseconds); }
コンソールログ
'HEIC_Converter.exe' (CoreCLR: clrhost): 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.7\System.Runtime.InteropServices.RuntimeInformation.dll' が読み込まれました。シンボルの読み込みをスキップしました。モジュールは最適化されていて、デバッグ オプションの [マイ コードのみ] 設定が有効になっています。 ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ ああああ スレッド 0x1b14 はコード 0 (0x0) で終了しました。 ああああ ああああ ああああ ああああ ああああ プログラム '[9508] HEIC_Converter.exe' はコード 4294967295 (0xffffffff) で終了しました。
0 コメント