์ด์ ๊ธ https://gall.dcinside.com/mgallery/board/view?id=game_dev&no=123739
์ง์ง ์ด์ํ๊ฒ ๊ฐค s8์ด๋ s22์์ ๋๋๋ฐ s10์์๋ง ์๋๋๋ผ
์๋ฌดํผ ์ฝ๋์์ Task.Yield()๋ฅผ Task.Delay(0) ์ผ๋ก ๋ฐ๊พธ๋๊น s10์์๋ ์ ์์๋ ํ๊ธด ํ๋๋ฐ ํน์ ๊ทธ ์ด์ ์๋์ฌ๋ ์์?
์ ์์๋๊บผ๊ฐ์๋ฐ
yield๋ก ํ์๋ 10๋ฒ์ค ํ๋ฒ๋ง ์คํ๋๋๋ฐ delay(0)์ผ๋ก ๋ฐ๊พผ ํ๋ก๋ 20๋ฒ ์คํ์ ํ๋ฒ๋ ์ค๋ฅ ์๋จ
๊ทธ๋ฆฌ๊ณ ์๋ฌด๊ฒ๋ ์๊ฑด๋ค๊ณ delay๋ง yield๋ก ๋น๊ฟ์ ์ฌ๋น๋ํ๋๋ ์๋จ ๋ค์ yield๋ฅผ delay๋ก ๋ฐ๋์ ๋น๋ํ๋๋ ๋จ
๋๋ ์ ํํ ์๊ทธ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ์ ๋์ถฉ ๊ตฌ๊ธ๋งํด๋ดค๋๋ฐ ์คํฌ๋ฆฝํ ๋ฐฑ์ค๋๋ฅผ IL2CPP๋ก ํ๋ฉด ์ด๋ฐ ์ค๋ฅ ์๊ธฐ๋๊ฑฐ๊ฐ๊ธฐ๋ ํ๋ค๋๋ฐ Mono๋ก ํ๋ฉด ๊ตฌ๊ธํ๋ ์ด ๋ฑ๋ก์ด ์๋๋๋ผ
์ฝ๋๊ฐ์์ด์์๋ชจ๋ฅด๊ฒ ์ง๋ง SynchronizationContext ์ ์ฉ๋์ ๋ํฐ์์๋ task yield๋ ๊ฐ์์ค๋ ๋์์์ฒ๋ฆฌ๋๊ณ delay๋ ๋น๋๊ธฐ๋ก์ฐจ๋ฆฌ๋์ ๋ค๋ฅธ ์ค๋ ๋ํ์์๋ ๊บผ์ ํ๊ณ ์ถ์๊ฒ ์ ๋ง๋ค๋ฅธ์ค๋ ๋์์์คํ๋๊ธธ๋ฐ๋๊ฑฐ๋ฉด delay๋๋ง๋๋ฐ
delay ์ดํ ์ ๋ํฐ๋ฉ์ธ์์๋ง์ฐ์ฌ์ผํ๋์ฝ๋๋๋ชป์ธ๊ฑฐ์
์ ๊ธฐ๊ธฐ๋ง๋ค๋ค๋ฅธ์ง๋๋ชจ๋ฅด๊ฒ ์ ๋ก๊ทธ์ฐ์๋ ์์๋๋ก ์ค๋ ๋์์ด๋์ฐ์ด๋ด
๊ทธ๋์ delay ์ดํ ์ ๋ํฐ ์์ ํ ๋๋ ์ฝ๋ฐฑํจ์๋ก ๋ค๋ฅธ mono๊ฐ์ฒด์ ๋ค์์ผ๋ก ์ค๋ update์์ ์คํํ๋๋ก ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ ์ค๋ ๋ ์์ด๋๋ ํ๋ฒ ์ฐ์ด๋ด์ผ๊ฒ ๋ค
์กด๋ ์ด์ํ๊ธด ํ๋ฐ yield๋ก ํ๋ delay๋ก ํ๋ ๋ฉ์ธ ์ค๋ ๋id๋ 1์ด๊ณ ๋ค๋ฅธ ๋ณ๋ ฌ ์ค๋ ๋ id๋ ์ ์์ ์ผ๋ก ์๋ก ๋ค ๋ค๋ฆ ์ข ๋ฃ๋๊ธฐ ์ง์ ๊น์ง ๊ณ์ ๋ก๊ทธ ์ง๊ฒ ํ๋ก๊ทธ๋๋ฐํด๋ฌ์ ์ผ๋จ ํ์ธํ ์ ์๋๊ฑด ์ฌ๊ธฐ๊น์ง์ธ๋ฏ ๊ทผ๋ฐ ๋ณดํต ๋ฐ๋๋ฝ๊ฑธ๋ฆฌ๋ฉด ๊ฐ์๊ธฐ ๊บผ์ ธ๋ฒ๋ฆฌ๊ธฐ๋ณด๋ค๋ ํ๋ฆฌ์ฆ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง ์๋ ํฌ์ํ๋ค