Notice
Recent Posts
Recent Comments
Link
스토리지
Unitask Cancel 후 아랫과정 실행하고 싶을 때 본문
using System.Threading;
using Cysharp.Threading.Tasks;
using UnityEngine;
public class Starter : MonoBehaviour
{
private CancellationTokenSource source;
private void Start()
{
source = new CancellationTokenSource();
Practice().Forget();
Invoke(nameof(StopTimer), 1f);
}
private async UniTaskVoid Practice()
{
Debug.Log("안녕하세요 1");
await UniTask.WaitForSeconds(3f, cancellationToken: source.Token).SuppressCancellationThrow();
Debug.Log("안녕하세요 2");
}
private void StopTimer()
{
source?.Cancel();
Debug.Log("StopTimer called");
}
}
WaitForSeconds에 token만 붙여놓으면 Cancel 후 아래에 있는
Debug.Log("안녕하세요 2");
이 친구를 실행 안하고 끝나버린다.
뒤에
SuppressCancellationThrow()
함수를 붙여주면 Cancel되자마자 아래것을 실행한다.
'Unity' 카테고리의 다른 글
[3.17] 인터페이스, Virtual (0) | 2021.03.17 |
---|
Comments