Я создаю задание Unity, которое выполняет огромное количество вычислений для каждого входа. Передача 1330 входов занимает всего 600 секунд при разделении входов между заданием IJobParallelFor размером 256 пакетов.
Задание работает, и после его запуска я использую сопрограмму в основном потоке, чтобы проверить, завершено ли задание, и затем вызываю job.Complete (), чтобы передать результат обратно в основной поток.
Теперь Unity не замерзает! ура! Однако , если я снова нажму кнопку воспроизведения в редакторе, чтобы остановить выполнение Unity, задание будет продолжено и остановит Unity до его завершения.
Я не могу найти никакой документации или способа принудительно остановить выполнение этих заданий. Я использую OnDisable () для вызова job.Complete () и избавляюсь от NativeArray. Но самое главное, мне просто нужно, чтобы эти работы прекратились. Есть ли способ вручную остановить выполнение?
Спасибо!