// 자주 사용되는 Task 버전
/* // Action을 인자로 받는 버전
public Task(Action action);
// 인자기 있는 Action
public Task(Action<object?> action, object? state);
// Func<T>를 인자로 사용하는 제네릭 버전
public Task(Func<TResult> function);
// 인자가 있는 Func
public Task(Func<object?, TResult> function, object? state);*/
static void Main(string[] args)
{
TaskEX();
}
public static void TaskEX()
{
// num을 인자로 받고 리턴값이 없는 Task
Task task1 = new Task(num => Console.WriteLine("task action1 : " + num), 1);
task1.Start();
// task가 끝날 때까지 스레드 대기
task1.Wait();
// num을 인자로 받고 int를 return하는 Task
Task<int> task2 = new Task<int>(num =>
{
Console.WriteLine("task action2 : " + num);
return (int)num;
}, 2);
task2.Start();
task2.Wait();
// task가 끝날 때까지 대기하다가 끝나면 결과값을 출력
Console.WriteLine("task result " + task2.Result);
}