public static Decisione DecidiConTimeout(this IRobot robot, int turno, Dictionary <IRobot, ISituazione> partecipanti, TimeSpan timeout) { var decisione = EseguiTaskConTimeout( () => robot.Decidi(turno, partecipanti), () => new SaltaIlTurnoPerTimeout(), timeout ); return(decisione); }