public void TestInputCount() { foreach (bool sync in DataflowTestHelpers.BooleanValues) { Barrier barrier1 = new Barrier(2), barrier2 = new Barrier(2); Func <int, int> body = item => { barrier1.SignalAndWait(); // will test InputCount here barrier2.SignalAndWait(); return(item); }; TransformBlock <int, int> tb = sync ? new TransformBlock <int, int>(body) : new TransformBlock <int, int>(i => Task.Run(() => body(i))); for (int iter = 0; iter < 2; iter++) { tb.PostItems(1, 2); for (int i = 1; i >= 0; i--) { barrier1.SignalAndWait(); Assert.Equal(expected: i, actual: tb.InputCount); barrier2.SignalAndWait(); } } } }