Index: DamClients/DamUI/trunk/src/Dam/Forms/DamPlugin.cs =================================================================== diff -u -r6436 -r6537 --- DamClients/DamUI/trunk/src/Dam/Forms/DamPlugin.cs (.../DamPlugin.cs) (revision 6436) +++ DamClients/DamUI/trunk/src/Dam/Forms/DamPlugin.cs (.../DamPlugin.cs) (revision 6537) @@ -210,7 +210,7 @@ this.mainForm = mainForm; spatialEditor = mainForm.GeometryEditor.SpatialEditor; mainForm.UseTemplateDialog = true; - mainForm.AllowMultiCoreSelection = true; + mainForm.AllowMultiCoreSelection = true; // Switch to enable/disable multicore calculation for DAM DamProject.ProjectWorkingPathLocation = ProjectPathLocation.InProjectMap; RegisterFileHandlers(); @@ -238,9 +238,9 @@ // This is to force the version type (Alpha, Pre-Alpha etc.) to be updated mainForm.ReloadManager.ApplyCurrentUiCultureToAll(); - // Set number of cores to 1 because multicore gives errors. - MaxCalculationCores = 1; // Math.Max(Environment.ProcessorCount - 1, 1); - mainForm.ProgramSettings.AllowMultiCoreSelection = false; + // Set number of cores to 1 when multicore is not allowed + MaxCalculationCores = mainForm.AllowMultiCoreSelection ? MaxCalculationCores: 1; + mainForm.ProgramSettings.AllowMultiCoreSelection = mainForm.AllowMultiCoreSelection; } public void Assign(object source) @@ -754,9 +754,12 @@ // do calculate. For now, just check length if (string.IsNullOrEmpty(validationMessages)) { - // Temporarily disable multicore calculation - ThrowHelper.ThrowWhenConditionIsTrue( + if (!mainForm.AllowMultiCoreSelection) + { + // Multicore calculation not enabled + ThrowHelper.ThrowWhenConditionIsTrue( "Multicore is currently not supported. Change number of cores to 1 in Tools menu.", () => damEngineInterface.DamProjectData.MaxCalculationCores > 1); + } // only if validation is ok, then string outputXml = damEngineInterface.Run(); @@ -960,8 +963,10 @@ if (e.Property != null && e.Property.Equals("MaxCalculationCores")) { - // Set number of cores to 1 because multicore gives errors. - mainForm.MaxCalculationCores = 1; // Math.Min(Environment.ProcessorCount - 1, damProject.DamProjectData.MaxCalculationCores); + // Set number of cores to 1 when multicore is disabled else set to available cores -1. + mainForm.MaxCalculationCores = mainForm.AllowMultiCoreSelection ? + Math.Min(Environment.ProcessorCount - 1, damProject.DamProjectData.MaxCalculationCores): + 1; } } else if (sender == damProject.DamProjectData.WaterBoard)