16
16
using System ;
17
17
using System . Collections . Generic ;
18
18
using System . Management . Automation ;
19
- using System . Threading ;
20
19
using System . Threading . Tasks ;
21
20
22
21
namespace Microsoft . Azure . Commands . Compute . Strategies
@@ -32,6 +31,8 @@ public static void StartAndWait(
32
31
this Cmdlet cmdlet , Func < IAsyncCmdlet , Task > createAndStartTask )
33
32
{
34
33
var asyncCmdlet = new AsyncCmdlet ( cmdlet ) ;
34
+ string previousX = null ;
35
+ string previousOperation = null ;
35
36
asyncCmdlet . Scheduler . Wait (
36
37
createAndStartTask ( asyncCmdlet ) ,
37
38
( ) =>
@@ -52,17 +53,25 @@ public static void StartAndWait(
52
53
var percent = ( int ) ( progress * 100.0 ) ;
53
54
var r = new [ ] { "|" , "/" , "-" , "\\ " } ;
54
55
var x = r [ DateTime . Now . Second % 4 ] ;
55
- cmdlet . WriteProgress (
56
- new ProgressRecord (
57
- 0 ,
58
- "Creating Azure resources" ,
59
- percent + "% " + x )
60
- {
61
- CurrentOperation = activeTasks . Count > 0
62
- ? "Creating " + string . Join ( ", " , activeTasks ) + "."
63
- : null ,
64
- PercentComplete = percent ,
65
- } ) ;
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
+ }
66
75
}
67
76
} ) ;
68
77
}
0 commit comments