티스토리 뷰

목차

    반응형

    C# TASK 7가지 사용법, C# 스레드는 이제 그만


    C# 스레드 사용보단 C# task로 비동기 처리하는 습관을 들여야합니다. 스레드 구현에 드는 시간과 비용보단 닷넷프레임워크에서 제공하는 task 사용이 합리적입니다.


    C# Task 비동기[C# TASK 7가지 사용법, C# 스레드는 이제 그만]


    먼저, using 문을 추가합니다.


    1
    using System.Threading.Tasks;
    cs


    1. 직접 호출


    1
    2
    Task.Factory.StartNew(() => {
        Console.WriteLine("Hello Task library!"); });
    cs


    2. Action 사용


    1
    2
    Task task = new Task(new Action(PrintMessage));
    task.Start();
    cs


    PrintMessage 함수는 아래와 같습니다.


    1
    2
    3
    4
    private void PrintMessage()
    {
        Console.WriteLine("Hello Task library!");
    }
    cs


    3. 델리게이트 사용


    1
    2
    Task task = new Task(delegate { PrintMessage(); });
    task.Start();
    cs


    4. 람다(Lambda) 사용


    1
    2
    Task task = new Task( () => PrintMessage() );
    task.Start();
    cs


    5. 람다와 익명 함수(anonymous method)


    1
    2
    Task task = new Task( () => { PrintMessage(); } );
    task.Start();
    cs


    6. 닷넷 4.5 이상에선 Task.Run


    1
    2
    3
    4
    public async Task DoWork()
    {
        await Task.Run(() => PrintMessage());
    }
    cs


    7. 닷넷 4.5 이상에서 Task.FromResult 사용


    1
    2
    3
    4
    5
    6
    7
    8
    9
    public async Task DoWork()
    {
        int res = await Task.FromResult<int>(GetSum(45));   
    }
     
    private int GetSum(int a, int b)
    {
        return a + b;
    }
    cs


    C# TASK 전에는 C# 델리게이트를 이용한 구현이 일반적이었는데 이제는 이마저도 번거롭게 되었습니다. C# TASK 또는 Async 문법을 이용해 델리게이트 구현은 생략해도 무방해졌어요.


    C# TASK 7가지 사용법, C# 스레드는 이제 그만

    반응형