본문 바로가기
C#

[C#] var tasks = new List<Task> 의 자세한 문법

by 따봉이 2023. 4. 12.
728x90
반응형

C#에서 var tasks = new List<Task>();은

Task 클래스를 사용하여 제네릭 리스트를 생성하는 코드입니다.

 

Task 클래스는 비동기 작업을 나타내는 클래스로,

Task 클래스를 사용하여 비동기 작업을 만들고 실행할 수 있습니다.

 

var 키워드는 컴파일러가 변수의 형식을 추론하도록 하는 역할을 합니다.

위 코드에서는 var 키워드로 변수 tasks를 선언하고, List<Task> 클래스로 제네릭 리스트를 생성하여

변수 tasks에 할당합니다.

 

예를 들어,

Task 클래스를 사용하여 비동기 작업을 만들고 리스트에 추가하려면 다음과 같이 코드를 작성할 수 있습니다.

var tasks = new List<Task>(); // Task 타입의 데이터를 저장하는 리스트 생성

// Task 객체 생성 후 리스트에 추가
Task task1 = Task.Run(() => Console.WriteLine("Task 1 실행"));
Task task2 = Task.Run(() => Console.WriteLine("Task 2 실행"));

tasks.Add(task1);
tasks.Add(task2);

위 코드에서 Task.Run() 메서드를 사용하여 Task 객체를 생성하고,

Add() 메서드를 사용하여 리스트에 Task 객체를 추가합니다.

List<Task> 클래스는 다양한 메서드와 속성을 제공합니다.

 

몇 가지 예를 들어보면:

 

// 리스트에 저장된 Task 객체 실행
foreach (var task in tasks)
{
    task.Start();
}

// 모든 Task가 완료될 때까지 대기
Task.WaitAll(tasks.ToArray());

// 모든 Task의 결과를 가져와서 처리
foreach (var task in tasks)
{
    if (task.IsCompleted)
    {
        Console.WriteLine("Task 완료: " + task.Result);
    }
}

위 코드에서 Start() 메서드를 사용하여 리스트에 저장된 Task 객체를 실행합니다.

WaitAll() 메서드를 사용하여 모든 Task 객체가 완료될 때까지 대기하고,

Result 속성을 사용하여 Task 객체의 결과를 가져와서 처리합니다.

728x90
반응형

댓글