当前位置:   article > 正文

UniTask--CancellationTokenSource

UniTask--CancellationTokenSource

UniTask–CancellationTokenSource

简单写了一份代码,大家可以在Unity中尝试运行一下,希望能够帮助大家理解UniTask的取消方法。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using Cysharp.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;

public class LearnTaskFour : MonoBehaviour
{
    public Button btnS;
    public Button btnE;

    private CancellationTokenSource _one;
    private CancellationToken _token;

    private void Start()
    {
        _one = new CancellationTokenSource();
        _token = _one.Token;
        //第一种 使用try Catch得方式
        // btnS.onClick.AddListener(async () =>
        // {
        //     try
        //     {
        //         await Run(_token);
        //     }
        //     catch (OperationCanceledException e)
        //     {
        //         Debug.Log(e);
        //     }
        // });
        
        //第二种
        btnS.onClick.AddListener(async () =>
        {
            bool cancel = await Run(_token).SuppressCancellationThrow();
            if (cancel)
            {
                Debug.Log("取消");
            }
        });
        btnE.onClick.AddListener(async () =>
        {
            _one.Cancel();//取消
            _one.Dispose();
            _one = new CancellationTokenSource();
            _token = _one.Token;
        });
    }
    private async UniTask Run(CancellationToken token)
    {
        while (true)
        {
            await UniTask.NextFrame(token);
            Debug.Log("执行");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

点击btns时,开始执行

点击btns

点击btne,取消

点击BTNE

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/95519
推荐阅读
  

闽ICP备14008679号