Introduction To Lazy Evaluation And Fair Scheduling In C#