본문 바로가기

반응형

async

(2)
[C#] 비동기 프로그래밍 - 코루틴(coroutine) 기반 비동기 서버 이번 포스트에서는 node.js와 같은 싱글 스레드 기반 비동기 서버(? 정확하게는 싱글 스레드는 아니지만..이건 다음에 설명하자) 프레임워크를 C# 프로그래밍 언어를 이용해 만드는 방법에 대해 살펴 보도록하겠다. 추가하여 콜백을 사용하지 않고도 비동기 작업을 처리 할 수 있는 부분도 함께 살펴 본다. 들어가며 일반적으로 네트워크 프로그래밍을 하게 되면(특히 서버) 대용량 트래픽을 처리하기 위해 비동기 핸들링을 선호하게 된다. 예를 들어 IO를 처리 할 때 메시지를 보내고 응답을 받을 때 까지 블로킹 되는 시간을 줄이기 위해 비동기를 많이 사용한다. 비동기 IO는 성능상으로는 확실히 이점을 가질 수 있지만, 비동기 작업이 완료 되었을 때 운영체제로 부터 작업 완료 통보를 받을 수 있는 별도의 콜백 함수를..
[C#] 비동기 프로그래밍 - async/await 들어가며 이전 포스트에서는 C#의 'Task' 사용법에 대해 알아 보았다. 예를 들어 여러분이 Task를 이용해 GUI 프로그램을 만든다고 가정하자. GUI프로그램은 UI이벤트를 처리하기 위해 메인 스레드는 블로킹 되지 않고 항상 유저의 입력을 받을 수 있도록 블로킹 되지 않아야 하며, 따라서 시간이 오래 걸리는 작업들은 Task를 이용해 다른 스레드에서 한다. 그리고 작업들이 처리되어야 하는 순서가 있다면 - 연속 실행 또는 연속 작업이라고 함 - Task의 ContinueWith 메소드 또는 TaskAwaiter를 이용하여 Task가 완료 되면 등록된 다음 작업을 처리 한다. Task에 대한 설명은 [여기]에서 찾아 볼 수 있다. 이번 포스트는 Task의 사용법에 대해서는 따로 설명을 하지 않을 예정..

반응형