Fix for 42149
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/decorators/DecorationScheduler.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/decorators/DecorationScheduler.java
index c1a8969..4367b81 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/decorators/DecorationScheduler.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/decorators/DecorationScheduler.java
@@ -195,9 +195,16 @@
 				monitor.beginTask(WorkbenchMessages.getString("DecorationScheduler.CalculatingTask"), 100); //$NON-NLS-1$
 				//will block if there are no resources to be decorated
 				DecorationReference reference;
-				monitor.worked(20);
+				monitor.worked(5);
+				int workCount = 5;
 				while ((reference = nextElement()) != null) {
 
+					//Count up to 90 to give the appearance of updating
+					if(workCount < 90){
+						monitor.worked(1);
+						workCount++;
+					}
+					
 					DecorationBuilder cacheResult = new DecorationBuilder();
 
 					monitor.subTask(WorkbenchMessages.format("DecorationScheduler.DecoratingSubtask", new Object[] {reference.getElement().toString()})); //$NON-NLS-1$
@@ -285,7 +292,7 @@
 						decorated();
 					}
 				}
-				monitor.worked(80);
+				monitor.worked(100 - workCount);
 				return Status.OK_STATUS;
 			}
 		};