어떻게 해야 하나요?
UniTask func()
{
}
이런 함수가 있고.
func().forget();
으로 실행한 task 를 취소하려고 하였는데 잘 안되네요
// 맴버 변수 입니다.
CancellationTokenSource cancelTocken = null;
// 함수 실행부 입니다.
if(cancelTocken != null )
{
cancelTocken.Cancel();
cancelTocken.Dispose();
}
cancelTocken = new CancellationTokenSource();
func().AttachExternalCancellation(cancelTocken.Token).Forget();
이렇게 하였는데 기존에 실행된 task가 취소가 안되네요
attachexternalcancellation사용하지 마시고 함수 내부에 await 시키는 부분에서 token 인자로 변수 담아주시고 취소할 때 해당 변수 cancel시켜주면 되는거에요
그렇군요... 혹시 그 방법 말고 다른 방법이 있을까 했는데 그방법이 최선이었군요... 답변 감사합니다
https://neue.cc/2021/02/26_599.html
유니테스크
개발하신 분 블로그인데, 이 글 중간에 attachexternalcancellation함수 관련된 이야기 읽어보시면
C# task의 withcancellation에 대응한다는 것 같은데, 이 함수를 사용하지 않기를 바란다는 것 같아요.
굳이 인자로 넣어주고싶으시면
차라리 함수 파라미터로 cancellationtoken 받아다가 넣어주는 식으로 해주시는게 좋을듯?