콜백 개념 및 C# 델리게이트 사용 방법

멀티 스레딩 환경 또는 다른 백그라운드 작업에서 어떤 일을 시키고 끝났는지 확인해야 하는 경우가 있습니다. 일이 끝났니? 첫 번째 방법으로는 주기적으로 일을 다 끝냈는지 체크하는 방식이 있습니다. 주기가 짧을수록 체크하는 횟수가 많아지고, 그만큼 일이 종료됐는지 빨리 체크할 수 있지만 언제 종료될지 모르는 일을 체크하기 위해 반복문으로 끊임없이 체크해야 합니다. 이는 자원 낭비로도 이어질 수 있습니다. 반대로 주기를 길게 두고 체크한다면 끝나는것은 감지하겠지만 정확히 어느 시점에 끝났는지 감지하는 것은 어려울 것입니다. ...

2025년 04월 20일 · 3 min · 594 words · JongBin

C# Task async/await, Task.Wait()/Result() 차이 및 테스트

.NET Framework 또는 Core 프로젝트에서 async 와 await 키워드를 이용하여 비동기 처리를 할 수 있다고 해서 몇 가지 실험을 해봤습니다. 😎 C++ 에서는 스레드풀에 일들(Jobs)을 넣어 백그라운드에서 작업을 진행 시켰는데, 단 두 개의 키워드로 이런 일들이 가능하다고 하니 신기하고 편해 보이기도 합니다. 👍 테스트 💡 Information C# 콘솔 프로젝트에서 진행했습니다. Program.cs 파일만 만들어지는 기본 프로젝트 1. async 키워드를 붙이면? 일단 async 키워드를 붙이면 내장된 스레드풀에서 돌아가는지 궁금했습니다. 코드는 아래와 같고, 예상 결과는 Main 0과 Main 1이 거의 동시에 출력되고 2초 후에 Async 가 출력될 것이라고 생각했습니다. ...

2024년 12월 26일 · 4 min · 737 words · JongBin