@@ -31,6 +31,8 @@ public static void StartAndWait(
31
31
this Cmdlet cmdlet , Func < IAsyncCmdlet , Task > createAndStartTask )
32
32
{
33
33
var asyncCmdlet = new AsyncCmdlet ( cmdlet ) ;
34
+ string previousX = null ;
35
+ string previousOperation = null ;
34
36
asyncCmdlet . Scheduler . Wait (
35
37
createAndStartTask ( asyncCmdlet ) ,
36
38
( ) =>
@@ -51,17 +53,25 @@ public static void StartAndWait(
51
53
var percent = ( int ) ( progress * 100.0 ) ;
52
54
var r = new [ ] { "|" , "/" , "-" , "\\ " } ;
53
55
var x = r [ DateTime . Now . Second % 4 ] ;
54
- cmdlet . WriteProgress (
55
- new ProgressRecord (
56
- 0 ,
57
- "Creating Azure resources" ,
58
- percent + "% " + x )
59
- {
60
- CurrentOperation = activeTasks . Count > 0
61
- ? "Creating " + string . Join ( ", " , activeTasks ) + "."
62
- : null ,
63
- PercentComplete = percent ,
64
- } ) ;
56
+ var operation = activeTasks . Count > 0
57
+ ? "Creating " + string . Join ( ", " , activeTasks ) + "."
58
+ : null ;
59
+
60
+ // write progress only if it's changed.
61
+ if ( x != previousX || operation != previousOperation )
62
+ {
63
+ cmdlet . WriteProgress (
64
+ new ProgressRecord (
65
+ 0 ,
66
+ "Creating Azure resources" ,
67
+ percent + "% " + x )
68
+ {
69
+ CurrentOperation = operation ,
70
+ PercentComplete = percent ,
71
+ } ) ;
72
+ previousX = x ;
73
+ previousOperation = operation ;
74
+ }
65
75
}
66
76
} ) ;
67
77
}
0 commit comments