Не английский язык по умолчанию для приложения iOS?

Дизайн этого зависит от того, что вы хотите делать за 15 секунд. Два наиболее правдоподобных случая: «сделайте это каждый X за 15 секунд» или «дождитесь появления X или 15 секунд, что произойдет раньше», что приведет к очень разному коду.

Ожидание

Thread.sleep (15000)

Это не повторение, но если вы ничего не хотите делать за 15 секунд, это намного эффективнее (он тратит меньше процессор на то, чтобы ничего не делать) .

Повторите некоторый код для 15 секунд

Если вы действительно хотите зацикливаться на 15 секунд, тогда ваше решение будет прекрасным, если ваш код не займет слишком много времени. Что-то вроде:

long t= System.currentTimeMillis();
long end = t+15000;
while(System.currentTimeMillis() < end) {
  // do something
  // pause to avoid churning
  Thread.sleep( xxx );
}

Подождите 15 секунд или какое-либо другое условие

Если вы хотите, чтобы ваш код был прерван ровно 15 секунд, что бы он ни делал, вам понадобится многопоточный решение. Посмотрите на java.util.concurrent для множества полезных объектов. Большинство методов, которые блокируют (например, wait ()), имеют аргумент тайм-аута. Семафор может выполнять именно то, что вам нужно.

37
задан James J 1 November 2010 в 19:24
поделиться