728x90
오늘 학습한 내용
1) UniTask에서 _ =와 .Forget()의 차이점
UniTask 비동기 메서드를 호출할 때, _ =와 .Forget() 모두 await를 안쓰는 방식이지만 예외 처리 및 용도에 차이가 있습니다.
문제 및 해결 과정
1) 문제 (UniTask를 실행할 때 _ =와 .Forget()의 차이점을 명확히 이해하지 못함)
비동기 메서드를 실행할 때 _ =와 .Forget() 중 어떤 것을 사용하는 것이 더 적절한지 혼동이 있었습니다.
시도한 해결 방법
- 공식 문서 및 샘플 코드 확인
- 테스트를 통해 예외 발생 시 로그 출력 여부 비교
결과
- _ =는 단순 실행만 하며, 예외 발생 시 로그를 확인하기 어렵습니다.
- .Forget()은 예외 콜백을 등록할 수 있어 디버깅에 더 용이합니다.
새롭게 알게 된 점
_ = MyAsyncMethod();
반환값을 무시하고 실행만 함. 예외가 발생해도 별도 로그 없이 무시됨. 디버깅 어려움
MyAsyncMethod().Forget();
UniTask 전용 방식. 예외 콜백 등록 가능. 예외 발생 시 로그로 확인 가능
// 예외 핸들링 불가
_ = MyAsyncMethod();
// 예외 핸들링 가능
MyAsyncMethod().Forget(ex => Debug.LogException(ex));
728x90
'내일배움캠프' 카테고리의 다른 글
내일배움캠프 Unity - TIL : 25.04.24 (0) | 2025.04.24 |
---|---|
내일배움캠프 Unity - TIL : 25.04.16 (0) | 2025.04.16 |
내일배움캠프 Unity - TIL : 25.04.14 (0) | 2025.04.14 |
내일배움캠프 Unity - TIL : 25.04.09 (0) | 2025.04.09 |
내일배움캠프 Unity - TIL : 25.04.04 (1) | 2025.04.04 |