using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Console.WriteLine("Sleep이 안되는 Task는 무엇일까요?");
Console.WriteLine("Run 메소드 를 보고 고르세요. (힌트 : 답은 여러개)");
Console.WriteLine("> Sleep이 안된 Task");
Console.WriteLine("> Sleep이 정상적으로 된 Task");
Console.WriteLine("추가 질문) task에서 결과 값을 return시");
Console.WriteLine("의도치 않은 결과 값을 가진 task는 무엇일까요?");
for (int idx = 0; idx < list.Count; idx++)
Console.WriteLine("{0} : {1}", "Task"+ (idx + 1), list[idx]);
private static List<object> list = new List<object>();
var task1 = Task.Factory.StartNew(() =>
Console.WriteLine("task1");
var task2 = Task.Factory.StartNew(() =>
Console.WriteLine("task2");
var task3 = Task.Factory.StartNew(async () =>
Console.WriteLine("task3");
var task4 = await Task.Factory.StartNew(async () =>
Console.WriteLine("task4");
var task5 = Task.Factory.StartNew(async () =>
Console.WriteLine("task5");
var task6 = Task.Run(() =>
Console.WriteLine("task6");
var task7 = Task.Run(() =>
Console.WriteLine("task7");
var task8 = Task.Run(async () =>
Console.WriteLine("task8");