public Philosopher[] CreateDiningPhilosophers(int count) { var arbitraryWaiter = new ArbitraryWaiter(); var philosophers = new Philosopher[count]; var forks = Enumerable.Range(0, count).Select(i => new Fork()).ToArray(); for (int i = 0; i < count; i++) { var philosopher = new Philosopher( new ArbitraryHands(arbitraryWaiter, forks[i], forks[(i + 1) % count])); philosophers[i] = philosopher; } return(philosophers); }
public ArbitraryHands(ArbitraryWaiter arbitraryWaiter, params Fork[] forks) { arbitraryWaiter_ = arbitraryWaiter; forks_ = forks; }