IEnumerator Manager()
{
yield return Task1();
yield return Task2();
}

IEnumerator Task1()
{
yield return null;
}

์ฝ”๋ฃจํ‹ด์—์„œ๋Š” ์ด๋ ‡๊ฒŒ yield return Task๋ฅผ ํ•˜๋ฉด ํ•ด๋‹น Task๊ฐ€ ์ข…๋ฃŒ๋œ ์ดํ›„ ๋‹ค์Œ ๋ช…๋ น๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์ด๊ฑธ ์œ ๋‹ˆํ…Œ์Šคํฌ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ ์ฒ˜์Œ ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. (Task1, Task2๋Š” ์ž„์˜๋กœ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค!)

async UniTaskVoid Manager()
{
await Task1();
await Task2();
}

async UniTaskVoid Task1()
{
await UniTask.Delay(1);
}

async UniTaskVoid Task2()
{
await UniTask.Delay(1);
}

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ–ˆ๋”๋‹ˆ Manager์˜ await ๋ถ€๋ถ„์— ๋นจ๊ฐ„ ์ค„์ด ์ณ์ง€๋”๊ตฐ์š”. ๋‘ ๋ฒˆ์งธ๋กœ ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

async UniTaskVoid Manager()
{
await Task1();
await Task2();
}

IEnumerator Task1()
{
yield return null;
}

IEnumerator Task2()
{
yield return null;
}

์ด๋ ‡๊ฒŒ ์“ฐ๋‹ˆ๊นŒ ์ผ๋‹จ ์˜ค๋ฅ˜๋Š” ์•ˆ๋‚˜๋„ค์š”. ๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ์“ฐ๋Š”๊ฑด ๋ญ”๊ฐ€ ์•„๋‹Œ๊ฑฐ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ˆ˜์ •ํ•ด ๋ดค๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ์“ฐ๋Š”๊ฒŒ ๋งž๋‚˜์š”?


async UniTaskVoid Manager()

{
await Task.Run(() => Task1().Forget());
await Task.Run(() => Task2().Forget());
}

async UniTaskVoid Task1()
{
await UniTask.Delay(1);
}

async UniTaskVoid Task2()
{
await UniTask.Delay(1);

}