From d2b5bd0a441a85acbdd985346b09e109cd0b7c00 Mon Sep 17 00:00:00 2001 From: Lars Brubaker Date: Tue, 12 Dec 2017 18:18:39 -0800 Subject: [PATCH] try catch on long running task don't crash subtract cancel --- ApplicationView/ApplicationController.cs | 9 ++++++++- PartPreviewWindow/View3D/Actions/SubtractEditor.cs | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ApplicationView/ApplicationController.cs b/ApplicationView/ApplicationController.cs index dd241129e..fb4df1281 100644 --- a/ApplicationView/ApplicationController.cs +++ b/ApplicationView/ApplicationController.cs @@ -1453,7 +1453,14 @@ namespace MatterHackers.MatterControl return Task.Run(async () => { - await func?.Invoke(taskDetails, tokenSource.Token); + try + { + await func?.Invoke(taskDetails, tokenSource.Token); + } + catch + { + + } executingTasks.Remove(taskDetails); }); diff --git a/PartPreviewWindow/View3D/Actions/SubtractEditor.cs b/PartPreviewWindow/View3D/Actions/SubtractEditor.cs index 0bc35d0cd..f23e74067 100644 --- a/PartPreviewWindow/View3D/Actions/SubtractEditor.cs +++ b/PartPreviewWindow/View3D/Actions/SubtractEditor.cs @@ -192,6 +192,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow.View3D progressStatus.Progress0To1 = percentCompleted + amountPerOperation * csgStatus.Progress0To1; reporter.Report(progressStatus); }, cancelationToken); + if(cancelationToken.IsCancellationRequested) + { + return Task.CompletedTask; + } var inverse = keep.WorldMatrix(); inverse.Invert(); transformedKeep.Transform(inverse);