накопление вызовов корутин

118
11 октября 2019, 14:20

Есть такая реализация: переходы три перехода между играми, когда мы перешли, срабатывает некий метод с корутиной в 3 секунды, но если очень быстро переходить по играм, то корутины накапливаются и метод вызывается подряд, как это собственно можно исправить?

Answer 1

Вам необходимо не запускать более одной корутины одновременно, т.е. отменять неактуальную при вызове нового перехода

private IEnumerator coroutine;    
private bool changeLevelInProgress;
public IEnumerator ChangeLevelCoroutine() {
    changeLevelInProgress = true;
    ...
    changeLevelInProgress = false;
}
void ChangeLevel() {
    if (changeLevelInProgress)
        StopCoroutine(coroutine);
    coroutine = new ChangeLevelCoroutine();
    StartCoroutine(coroutine);
}
READ ALSO
Реализовать страницы в winforms

Реализовать страницы в winforms

В окно из бд загружаются данныеНо нужно сделать чтобы загрузилось не все сразу

117
Получение списка кошельков Bitcoin

Получение списка кошельков Bitcoin

Пишу аналог сайта Mnemonic Code Converter на C# Дошел до получения BIP32 Extended Private Key и BIP32 Extended Public KeyИспользую библиотеку NBitcoin

142
DateTime.Hour всегда ли 24?

DateTime.Hour всегда ли 24?

Если брать из любого DateTime часы те

118
file_get_contents не работает и curl тоже

file_get_contents не работает и curl тоже

У меня не работает на хостинге file_get_contents и curl

128