티스토리 뷰
목차
반응형
C# TASK 7가지 사용법, C# 스레드는 이제 그만
C# 스레드 사용보단 C# task로 비동기 처리하는 습관을 들여야합니다. 스레드 구현에 드는 시간과 비용보단 닷넷프레임워크에서 제공하는 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(4, 5)); } private int GetSum(int a, int b) { return a + b; } | cs |
C# TASK 전에는 C# 델리게이트를 이용한 구현이 일반적이었는데 이제는 이마저도 번거롭게 되었습니다. C# TASK 또는 Async 문법을 이용해 델리게이트 구현은 생략해도 무방해졌어요.
C# TASK 7가지 사용법, C# 스레드는 이제 그만
반응형