싱글쓰레드이고
Cor = StartCoroutine(f()); 가 있고
현재 함수에서 StopCorountine(Cor)
하면 이 코루틴은 즉시 종료되잖아요
즉, 내부엔진에서 코루틴 실행할때 끝나버림
근데 어디선가 코루틴은 즉시 종료가 안된다고 한거를 봐서..
이게 말이되나? 싱글쓰레드에서
싱글쓰레드이고
Cor = StartCoroutine(f()); 가 있고
현재 함수에서 StopCorountine(Cor)
하면 이 코루틴은 즉시 종료되잖아요
즉, 내부엔진에서 코루틴 실행할때 끝나버림
근데 어디선가 코루틴은 즉시 종료가 안된다고 한거를 봐서..
이게 말이되나? 싱글쓰레드에서
코루틴 안에서 자기자신 코루틴을 Stop시키면 yield를 만날 때까지는 종료가 안 되고 마저 실행됨 그런게 아니라 코루틴 밖에서 종료시키면 코루틴이 즉시 종료되는 걸로 알고 있음
ㅇㅇ 어차피 단일 쓰레드이고 현재 분기(함수)에서 StopCoroutine 하면 엔진내부 코루틴 실행할때 해당 코루틴 실행 안되니 즉시 종료되는꼴
유니티 플레이어루프에서 yield만큼 대기시키는게 코루틴인데 멀티쓰레드랑 전혀 관련없음 내부도 걍 분기별 state 만들어놓고 ienumable 반환받는거고
ㅇㅇ 어차피 단일 쓰레드이고 현재 분기(함수)에서 StopCoroutine 하면 엔진내부 코루틴 실행할때 해당 코루틴 실행 안되니 즉시 종료되는꼴인데 뭔가 블로그들은 코루틴 얘기하면서 멀쓰, 비동기 이런거까지 설명해서 뭔가 복잡함 관련없는건데
@글쓴 Indie(124.57) 그런것땜에 코루틴 헷갈려하는사람 많긴함 비동기처럼 동작한다 이걸 설명하고싶었던것같은데 비동기나 멀티쓰레딩이랑은 전혀관련없지...걍 모노클래스에서 분기별 코드작성 용이하도록 만들어놓은 느낌정도밖에 안된다생각함