Получи случайную криптовалюту за регистрацию!

Как приостановить Task в Swift? Структура Task в Swift имеет | iOS Dev

Как приостановить Task в Swift?

Структура Task в Swift имеет статический метод sleep(), который приводит к приостановке текущей задачи по крайней мере на некоторое количество наносекунд.

Речь идёт именно о наносекундах: нужно написать 1_000_000_000, чтобы получить 1 секунду.

Для этого нужно вызвать Task.sleep() с помощью await, так как это приведет к приостановке задачи, и вам также нужно использовать try, потому что sleep() приведёт к ошибке в случае, если task будет отменён.

Важное уточнение

Вызов Task.sleep() заставит текущую задачу «спать» по крайней мере столько времени, сколько вы запросили.

При этом происходит некоторое смещение, поскольку система может быть занята другой работой, но мы по крайней мере, можем быть уверены, что оно не закончится раньше указанного промежутка.

Использование наносекунд немного неуклюже, но на данный момент у Swift нет альтернативы.

Кстати! В отличие от Thread.sleep(), Task.sleep() не блокирует поток, позволяя ему взять дополнительную работу из других мест, если потребуется.

@iOS Dev