C#์˜ Task๋Š” ์ž„์‹œ๋กœ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ


๋งต ํŒŒ์ผ์„ ๋ช‡ ์ดˆ ๊ฑธ๋ ค์„œ ์ฝ๊ณ  ์žˆ๋Š”๋ฐ ๋กœ๋”ฉ ์•„์ด์ฝ˜์ด ๋ฑ…๊ธ€๋ฑ…๊ธ€ ๋Œ๊ฒŒ ํ•˜๊ณ ์‹ถ์„ ๋•Œ


์›น์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋ฐ›์„ ๋•Œ (์ด๊ฑด ์‚ฌ์‹ค ์œ ๋‹ˆํ‹ฐ๊ฐ€ ์ฝ”๋ฃจํ‹ด์œผ๋กœ ์ œ๊ณตํ•ด์ฃผ๊ธด ํ•˜์ง€๋งŒ)


๋“ฑ๋“ฑ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์— ์‘์šฉํ•  ์ˆ˜ ์žˆ์–ด


๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ async๋ž‘ await์ž„



์•„๋ž˜๋Š” 1์ดˆ๋งˆ๋‹ค i๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  result์— ๋ˆ„์ ํ•˜๋Š” ๊ฑธ 10์ดˆ๊ฐ„ ๋ฐ˜๋ณตํ•˜๋Š” ์ฝ”๋“œ์•ผ.

1์ดˆ๋งˆ๋‹ค ํ•œ ๋ฒˆ์”ฉ ๋กœ๊ทธ๊ฐ€ ์ฐํžˆ๋Š”๋ฐ ๊ทธ๋Ÿฌ๋Š” ์™€์ค‘์— Update()๋„ ์ •์ƒ์ ์œผ๋กœ ํ˜ธ์ถœ๋จ.





๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ฃผ์„์ด ์ถœ๋ ฅ๋จ

1. Run() invoked in Start()

2. Run() returns

3. 0 ~ 9 ๊นŒ์ง€ ์ˆซ์ž. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์ˆ˜ํ•œ Update()

4. Result : 45


๋ณด๋ฉด์€ Run() ํ•จ์ˆ˜๋Š” ๋ฐ”๋กœ ๋ฆฌํ„ด๋˜๊ณ  ๋’ค ์ด์–ด์„œ 0~9 ๊ฐ€ ์ถœ๋ ฅ๋จ

๊ทธ๋ฆฌ๊ณ  Update() ๋Š” ๊ณ„์†ํ•ด์„œ ์ถœ๋ ฅ๋˜๊ณ .

๋‹ค์‹œ๋งํ•˜๋ฉด i๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ๋ถ€๋ถ„์—๋Š” ๋งต ๋กœ๋”ฉ์„, Update ํ•จ์ˆ˜์—๋Š” ๋กœ๋”ฉ ์•„์ด์ฝ˜์„ ๋ฑ…๊ธ€๋ฑ…๊ธ€ ๋Œ๋ฆฌ๋ฉด ๋˜๋Š”๊ฑฐ์•ผ.



https://chickeningot.github.io/unity-async/


๋” ์ž์„ธํ•œ ์˜ˆ์ œ๋Š” ๋‚ด ๋ธ”๋กœ๊ทธ์— ์žˆ์Œ