C# 비동기 프로그래밍

· C#
이번 포스팅은 .NET Framework에서 비동기 작업을 수행하기 위한 디자인 패턴인 Event-based-Asynchronous Pattern(EAP)에 대해 알아보려 합니다. EAP에 대해 알아보고 실제 코드 예제를 통해 어떻게 사용하는지 알아보겠습니다. | EAP 이해 Event-based-Asynchronous Pattern(EAP)는 비동기 작업을 수행할 때 사용되는 디자인 패턴입니다. 이 방식은 이벤트와 이벤트 핸들러를 사용하여 비동기 작업의 시작과 완료를 알려줍니다. | EAP 구성 요소 비동기 메서드 : MathodNameAsync 형식의 메서드를 제공해야 합니다. 비동기 작업을 시작하는 메서드입니다. 완료 이벤트 : MathodNameCompleted 형식의 이벤트를 제공해야 합니다. ..
· C#
1. C# 비동기 프로그래밍 : Task 이해 2. C# 비동기 프로그래밍 : async, await 이해 3. C# 비동기 프로그래밍 : Task의 연속 작업 (Continuations) 이해 4. C# 비동기 프로그래밍 : Thread와 Task의 차이점 5. C# 비동기 프로그래밍 : deadlock 문제와 해결 방법 이번 포스팅은 Deadlock에 대해 정리한 내용을 알아보겠습니다. 실제로 비동기 프로그래밍으로 프로그램을 짜게 되면 생각보다 구조 설계가 힘들다고 느낌을 받을 수도 있습니다. 그런 느낌을 받게 하는 문제인 데드락(Deadlock)에 대해 정리하였습니다. | DeadLock 문제 이해 먼저 데드락(Deadlock)이란 두 개 이상의 프로세스나 스레드가 상호 배재적으로 사용하고 있는 자..
· C#
1. C# 비동기 프로그래밍 : Task 이해 2. C# 비동기 프로그래밍 : async, await 이해 3. C# 비동기 프로그래밍 : Task의 연속 작업 (Continuations) 이해 4. C# 비동기 프로그래밍 : Task와 Thread의 차이점 이번 포스팅은 C#에서 Task 메서드와 Thread 메서드의 차이에 대해 알아보려 합니다. 두 개념 모두 병렬 및 비동기 처리에 사용되지만, 각각의 역할과 사용법이 다르므로 이를 이해하는 것이 중요합니다. | Thread와 Task 이해 Thread와 Task 모두 병렬 및 비동기 처리에 사용되지만, 각각의 역할과 사용법이 다르므로, 먼저 이를 이해하는 것이 중요합니다. | Thread 운영체제의 최소 실행 단위로, 개발자가 직접 제어해야 합니다...
· C#
1. C# 비동기 프로그래밍 : Task 이해 2. C# 비동기 프로그래밍 : async, await 이해 3. C# 비동기 프로그래밍 : Task의 연속 작업 (Continuations) 이해 이번 포스팅은 Task의 연속 작업에 대해 정리하였습니다. 비동기 프로그래밍의 중요한 방법 중 하나이며 복잡한 비동기를 쉽게 다루는데 도움을 줄 수 있는 개념입니다. | Task 연속 작업(Continuations) 이해 Task 연속 작업은 Task가 끝난 뒤 바로 수행되는 작업을 말합니다. 이는 Task.ContiuneWith() 메서드를 통해 구현할 수 있습니다. "ContuneWith" 이름에서 알 수 있듯이, 기존의 Task가 완료된 후에 "계속해서" 수행될 작업을 설정합니다. 예제) 팩토리얼 계산 후 ..
· C#
1. C# 비동기 프로그래밍 : Task 이해 2. C# 비동기 프로그래밍 : async, await 이해 지난 포스팅에 이어 이번 포스팅은 C#의 비동기 프로그래밍에서 중요한 async, await에 대해 정리하였습니다. 실제로 Task와 정말 많이 쓰고 중요한 키워드입니다. 코드 예제들과 같이 한번 알아보겠습니다! | 동기, 비동기 이해 async와 await는 비동기 프로그래밍을 위한 키워드입니다. 하지만 이를 이해하기 이전에 먼저 동기와 비동기의 개념에 대해 알아야 합니다. | 동기 (Synchronous) : 한 가지 작업이 완료되어야만 다음 작업이 시작되는 방식 동기 실행을 이해하는 방법 중 한 가지는 시간이 순차적으로 흐르는 것을 상상하는 것입니다. 위 그림을 생각해 보면 Task1, Tas..
· C#
이번 포스팅은 C#의 비동기 프로그래밍을 수행하는 데 사용하는 클래스인 Task에 대해 정리하였습니다. Task는 제가 실제로 작업하면서 많이 쓰는 클래스이며 많은 활용을 할 수 있습니다. 예시 코드들과 함께 Task에 대해 알아보겠습니다. | Task 이해 - Task는 비동기 작업을 나타내는 클래스입니다. System.Threading.Tasks 네임스페이스에 포함되어 있으며 Task를 사용하면 오래 걸리는 작업이 메인 스레드를 차단하지 않고, 병렬로 실행됩니다. 이는 UI 스레드를 건들지 않고 실행되는 것으로 애플리케이션이 응답하지 않는 현상이 없습니다. | Task 실행 - Task를 생성하는 가장 간단한 방법은 Task.Run 메서드를 실행하는 것입니다. Task.Run 메서드는 주어진 작업을 ..
· C#
1. C# 이벤트 정의와 등록 및 제거 방법 2. C# 이벤트 발생 (Event Raising) 이해 3. C# 멀티캐스트 이벤트 이해 : 다중 이벤트 핸들러 관리 이번 포스팅은 하나의 이벤트애 여러 개의 이벤트 핸들러를 묶는 멀티 캐스트 이벤트에 대해 알아보겠습니다. 이전 포스팅을 통해 이벤트에 대한 전반적인 내용을 확인해 보세요. | 멀티캐스트 이벤트란? - 멀티캐스트 이벤트는 C#에서 하나의 이벤트에 여러 개의 이벤트 핸들러를 등록할 수 있는 기능입니다. 이벤트가 발생하면 등록된 모든 이벤트 핸들러 메서드가 순차적으로 실행되는 방식을 의미하며, 멀티캐스트 이벤트를 사용하면 코드를 모듈화 하고 유지 관리하기 쉽게 만들어줍니다. | 멀티캐스트 이벤트 구현 단계 이벤트 델리게이트 정의 : - 일반적으로 ..
우준세
'C# 비동기 프로그래밍' 태그의 글 목록