Как запустить java-функцию всего за 30 минут

Мне нужно создать java-функцию, которая будет работать только 30 минут, а по истечении 30 минут она что-то выполнит. Но он также должен иметь возможность самозавершиться до указанного времени, если выполнены правильные условия. Я не хочу, чтобы функция спала, поскольку она должна собирать данные, поэтому никаких спящих потоков. {public EngineMeasurementCollection () {Add (new ...

Учитывая следующий код из примера Microsoft:

public class EngineMeasurementCollection : Collection<EngineMeasurement>
{
    public EngineMeasurementCollection()
    {
        Add(new EngineMeasurement { Speed = 1000, Torque = 100, Power = 20 });
        Add(new EngineMeasurement { Speed = 2000, Torque = 160, Power = 60 });
        Add(new EngineMeasurement { Speed = 3000, Torque = 210, Power = 125 });
        Add(new EngineMeasurement { Speed = 4000, Torque = 220, Power = 160 });
        Add(new EngineMeasurement { Speed = 5000, Torque = 215, Power = 205 });
        Add(new EngineMeasurement { Speed = 6000, Torque = 200, Power = 225 });
        Add(new EngineMeasurement { Speed = 7000, Torque = 170, Power = 200 });
    }
}
public class EngineMeasurement
{
    public int Speed { get; set; }
    public int Torque { get; set; }
    public int Power { get; set; }
}

Как мне получить минимальное / максимальное значение скорости, крутящего момента или мощности. Мне нужно это, чтобы установить масштаб диаграмму, которую я делаю (точнее, диаграмму WPF Toolkit). Я полагаю, у меня может быть метод внутри EngineMeasurementCollection, который выполняет итерацию каждого EngineMeasurement и смотрит на мощность (или скорость), но я подозреваю, что есть гораздо более простой способ? У класса Collection есть какой-то метод Min, но обратите внимание, я не пытаюсь получить минимум коллекции (я не уверен, что это значило бы в данном случае), а скорее минимум определенного свойства ( напр. Скорость). Я видел использование Collection.Min с функторами. Есть ли что-то, что можно там сделать? Или с Linq? Меня интересуют все способы. Спасибо, Дэйв

Дополнительный вопрос (возможно, это станет для меня очевидным с ответом на мин / макс). Какие есть варианты, чтобы определить, есть ли значение (например, скорость) уже в коллекции. Из этого примера не ясно, но может случиться так, что если у вас уже есть некоторые данные для данной независимой переменной (например, время), вам больше ничего не нужно. Так есть ли что-то вроде Collection.Contains («укажите свойство, которое вас интересует»)?

5
задан Dave 29 September 2010 в 22:47
поделиться