@@ -264,38 +264,40 @@ public void ConcurrentSchedulerWithDependencyOrdering()
264264 var runningOrder = new List < int > ( ) ;
265265 var rand = new Randomizer ( ) ;
266266 var startTasks = new List < ActionTask > ( ) ;
267- var i = 1 ;
268- for ( var start = i ; i < start + count ; i ++ )
267+ for ( var i = 0 ; i < count ; i ++ )
269268 {
270- startTasks . Add ( GetTask ( TaskAffinity . Concurrent , i ,
269+ startTasks . Add ( GetTask ( TaskAffinity . Concurrent , i + 1 ,
271270 id => { new ManualResetEventSlim ( ) . Wait ( rand . Next ( 100 , 200 ) ) ; lock ( runningOrder ) runningOrder . Add ( id ) ; } ) ) ;
272271 }
273272
274273 var midTasks = new List < ActionTask > ( ) ;
275- for ( var start = i ; i < start + count ; i ++ )
274+ for ( var i = 0 ; i < count ; i ++ )
276275 {
277- midTasks . Add ( startTasks [ i - 4 ] . Then (
278- GetTask ( TaskAffinity . Concurrent , i ,
279- id => { new ManualResetEventSlim ( ) . Wait ( rand . Next ( 100 , 200 ) ) ; lock ( runningOrder ) runningOrder . Add ( id ) ; } ) )
280- ) ; ;
276+ var previousTask = startTasks [ i ] ;
277+ midTasks . Add ( previousTask . Then ( GetTask ( TaskAffinity . Concurrent , i + 11 ,
278+ id => { new ManualResetEventSlim ( ) . Wait ( rand . Next ( 100 , 200 ) ) ; lock ( runningOrder ) runningOrder . Add ( id ) ; } ) )
279+ ) ; ;
281280 }
282281
283282 var endTasks = new List < ActionTask > ( ) ;
284- for ( var start = i ; i < start + count ; i ++ )
283+ for ( var i = 0 ; i < count ; i ++ )
285284 {
286- endTasks . Add ( midTasks [ i - 7 ] . Then (
287- GetTask ( TaskAffinity . Concurrent , i ,
288- id => { new ManualResetEventSlim ( ) . Wait ( rand . Next ( 100 , 200 ) ) ; lock ( runningOrder ) runningOrder . Add ( id ) ; }
289- ) ) ) ;
285+ var previousTask = midTasks [ i ] ;
286+ endTasks . Add ( previousTask . Then ( GetTask ( TaskAffinity . Concurrent , i + 21 ,
287+ id => { new ManualResetEventSlim ( ) . Wait ( rand . Next ( 100 , 200 ) ) ; lock ( runningOrder ) runningOrder . Add ( id ) ; } ) )
288+ ) ;
290289 }
291290
292291 foreach ( var t in endTasks )
293292 t . Start ( ) ;
294293 Task . WaitAll ( endTasks . Select ( x => x . Task ) . ToArray ( ) ) ;
295294
296- CollectionAssert . AreEquivalent ( Enumerable . Range ( 1 , 3 ) , runningOrder . Take ( 3 ) ) ;
297- CollectionAssert . AreEquivalent ( Enumerable . Range ( 4 , 3 ) , runningOrder . Skip ( 3 ) . Take ( 3 ) ) ;
298- CollectionAssert . AreEquivalent ( Enumerable . Range ( 7 , 3 ) , runningOrder . Skip ( 6 ) . Take ( 3 ) ) ;
295+ Assert . True ( runningOrder . IndexOf ( 21 ) > runningOrder . IndexOf ( 11 ) ) ;
296+ Assert . True ( runningOrder . IndexOf ( 11 ) > runningOrder . IndexOf ( 1 ) ) ;
297+ Assert . True ( runningOrder . IndexOf ( 22 ) > runningOrder . IndexOf ( 12 ) ) ;
298+ Assert . True ( runningOrder . IndexOf ( 12 ) > runningOrder . IndexOf ( 2 ) ) ;
299+ Assert . True ( runningOrder . IndexOf ( 23 ) > runningOrder . IndexOf ( 13 ) ) ;
300+ Assert . True ( runningOrder . IndexOf ( 13 ) > runningOrder . IndexOf ( 3 ) ) ;
299301 }
300302
301303 [ Test ]
0 commit comments