@@ -31,16 +31,30 @@ public ITask Queue(ITask task)
3131
3232 public override void RunSynchronously ( )
3333 {
34- foreach ( var task in queuedTasks )
35- task . Start ( ) ;
36- base . RunSynchronously ( ) ;
34+ if ( queuedTasks . Any ( ) )
35+ {
36+ foreach ( var task in queuedTasks )
37+ task . Start ( ) ;
38+ base . RunSynchronously ( ) ;
39+ }
40+ else
41+ {
42+ aggregateTask . TrySetResult ( true ) ;
43+ }
3744 }
3845
3946 protected override void Schedule ( )
4047 {
41- foreach ( var task in queuedTasks )
42- task . Start ( ) ;
43- base . Schedule ( ) ;
48+ if ( queuedTasks . Any ( ) )
49+ {
50+ foreach ( var task in queuedTasks )
51+ task . Start ( ) ;
52+ base . Schedule ( ) ;
53+ }
54+ else
55+ {
56+ aggregateTask . TrySetResult ( true ) ;
57+ }
4458 }
4559
4660 private void InvokeFinishOnlyOnSuccess ( ITask task , bool success , Exception ex )
@@ -115,16 +129,29 @@ public ITask<TTaskResult> Queue(ITask<TTaskResult> task)
115129
116130 public override List < TResult > RunSynchronously ( )
117131 {
118- foreach ( var task in queuedTasks )
132+ if ( queuedTasks . Any ( ) )
133+ {
134+ foreach ( var task in queuedTasks )
119135 task . Start ( ) ;
120- return base . RunSynchronously ( ) ;
136+ return base . RunSynchronously ( ) ;
137+ }
138+
139+ aggregateTask . TrySetResult ( new List < TResult > ( ) ) ;
140+ return Result ;
121141 }
122142
123143 protected override void Schedule ( )
124144 {
125- foreach ( var task in queuedTasks )
145+ if ( queuedTasks . Any ( ) )
146+ {
147+ foreach ( var task in queuedTasks )
126148 task . Start ( ) ;
127- base . Schedule ( ) ;
149+ base . Schedule ( ) ;
150+ }
151+ else
152+ {
153+ aggregateTask . TrySetResult ( new List < TResult > ( ) ) ;
154+ }
128155 }
129156
130157 private void InvokeFinishOnlyOnSuccess ( ITask < TTaskResult > task , TTaskResult result , bool success , Exception ex )
0 commit comments