@@ -264,38 +264,40 @@ public void ConcurrentSchedulerWithDependencyOrdering()
264
264
var runningOrder = new List < int > ( ) ;
265
265
var rand = new Randomizer ( ) ;
266
266
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 ++ )
269
268
{
270
- startTasks . Add ( GetTask ( TaskAffinity . Concurrent , i ,
269
+ startTasks . Add ( GetTask ( TaskAffinity . Concurrent , i + 1 ,
271
270
id => { new ManualResetEventSlim ( ) . Wait ( rand . Next ( 100 , 200 ) ) ; lock ( runningOrder ) runningOrder . Add ( id ) ; } ) ) ;
272
271
}
273
272
274
273
var midTasks = new List < ActionTask > ( ) ;
275
- for ( var start = i ; i < start + count ; i ++ )
274
+ for ( var i = 0 ; i < count ; i ++ )
276
275
{
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
+ ) ; ;
281
280
}
282
281
283
282
var endTasks = new List < ActionTask > ( ) ;
284
- for ( var start = i ; i < start + count ; i ++ )
283
+ for ( var i = 0 ; i < count ; i ++ )
285
284
{
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
+ ) ;
290
289
}
291
290
292
291
foreach ( var t in endTasks )
293
292
t . Start ( ) ;
294
293
Task . WaitAll ( endTasks . Select ( x => x . Task ) . ToArray ( ) ) ;
295
294
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 ) ) ;
299
301
}
300
302
301
303
[ Test ]
0 commit comments