Unity 6.3
0 онлайн 75 гостей 3 в системе
Вход

BakeProgressState.Cancel

Declaration

public void Cancel();

Описание

Отмена асинхронной операции.

Запрашивает отмену всех текущих операций, использующих это состояние прогресса. Метод возвращает управление немедленно, а операция отменяется, как только реализация сможет отреагировать на запрос и остановить её.

Поведение отмены:

— Запрос отмены является совместным — операции должны проверять отмену. — Не все операции поддерживают отмену. — Отмена может занять некоторое время, чтобы вступить в силу. — Используйте WasCancelled, чтобы проверить, было ли запрошено отмена.

Примечание: Этот метод только запрашивает отмену; он не принуждает к немедленному прекращению.

// Set up cancellable baking operation
using var progress = new BakeProgressState();
var integrator = new RadeonRaysProbeIntegrator();
integrator.SetProgressReporter(progress);

// Start long-running operation var bakeTask = Task.Run(() => { return integrator.IntegrateIndirectRadiance( context, 0, 10000, 4096, false, outputBuffer); });

// Allow user to cancel with UI button cancelButton.onClick.AddListener(() => { progress.Cancel(); statusText.text = "Cancelling..."; });

// Wait for completion or cancellation var result = await bakeTask; if (progress.WasCancelled()) { statusText.text = "Bake was cancelled"; }