c# 기초구문 업데이트 완료

This commit is contained in:
2025-03-05 11:57:12 +09:00
parent 15885a2286
commit 6ebd0fb5a9
22 changed files with 740 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
internal class Program
{
//비동기 Task 코드가 실행되는 메서드는 async 접두사 및 리턴형이 Task 이어야 함.
private static async Task Main(string[] args)
{
var cls = new AClass();
cls.ComplexCalc(3000); // 동기처리
cls.ComplexCalc(2000); // 동기처리
await cls.ComplexCalcAsync(3000); // 비동기 처리
var task1 = Task<int>.Run(() => cls.ComplexCalc(3000));
var task2 = Task<int>.Run(() => cls.ComplexCalc(2000));
Task<int>[] tasks = { task1, task2 };
//먼저완료되는 타스크를 먼저처리
var anytask = Task.WhenAny(tasks);
Task<int> finTask = await anytask;
var result = await finTask;
//모두가 완료되기를 기다리는 타스크.
Task alltask = Task.WhenAll(tasks);
await alltask;
}
}
public class AClass
{
public int ComplexCalc(int complexity)
{
Thread.Sleep(complexity);
return complexity;
}
public async Task<int> ComplexCalcAsync(int complexity)
{
var task = Task.Run(() => ComplexCalc(complexity));
// await 가 나오기 전까지 다른 동시작업 가능
var result = await task;
return result;
}
}