상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
카카오뱅크의 모바일 앱에서 거래 내역 조회는 어떻게 하나요?
카카오뱅크의 금융 상품 가입 시 필요한 정보는 무엇인가요?
티스토리 블로그의 댓글 스팸을 방지하는 방법은?
프라하의 주요 역사적 사건은 무엇인가요?
프라하에서의 여행 중 추천하는 공원은 어디인가요?
토스뱅크의 금융 상품 비교는 어떻게 하나요?
부산은행의 카드 포인트 사용 방법은?
부산은행의 모바일 뱅킹에서 계좌 잔액 조회 방법은?
신한은행의 카드 상품 종류는 무엇인가요?
19세기 필리핀에서의 정치적 갈등은 어떤 양상이었나요?
바스법 칫솔질을 할 때 치아의 변색을 방지하는 방법은 무엇인가요?
바스법 칫솔질을 할 때 구강 건강을 유지하는 팁은 무엇인가요?
Previous
Next
수정하기 - C#에서 CancellationToken은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
CancellationToken은 C 의 Task Parallel Library (TPL)에서 비동기 작업을 취소할 수 있는 메커니즘을 제공하는 구조체입니다. 이 구조체는 비동기 프로그래밍에서 작업을 중단할 필요가 있을 때 유용하게 사용됩니다. CancellationToken은 주로 비동기 메서드와 함께 사용되며, 이를 통해 작업이 취소될 수 있는 신호를 전달합니다. CancellationToken의 구조 CancellationToken은 `CancellationTokenSource`와 함께 사용됩니다. `CancellationTokenSource`는 취소 요청을 생성하고, 이 요청을 통해 CancellationToken을 발행합니다. CancellationToken은 작업이 취소될 수 있는 상태를 나타내며, 이를 통해 작업이 중단될 수 있는지를 확인할 수 있습니다. 사용 예시 CancellationToken을 사용하는 기본적인 방법은 다음과 같습니다: 1. CancellationTokenSource 생성 : 작업을 취소할 수 있는 소스를 생성합니다. 2. CancellationToken 전달 : 비동기 메서드에 CancellationToken을 전달합니다. 3. 작업 수행 : 작업을 수행하며 주기적으로 CancellationToken의 상태를 확인합니다. 4. 취소 요청 : 필요할 때 CancellationTokenSource의 `Cancel()` 메서드를 호출하여 작업을 취소합니다. ```csharp using System; using System.Threading; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { var cts = new CancellationTokenSource(); var token = cts.Token; // 비동기 작업 시작 var task = <a href='https://sangseek.com/sangseeks/Task.Run/ko'>Task.Run</a>(() => DoWork(token), token); // 2초 후에 작업 취소 await Task.Delay(2000); cts.Cancel(); try { await task; } catch (OperationCanceledException) { Console.WriteLine("작업이 취소되었습니다."); } } static void DoWork(CancellationToken token) { for (int i = 0; i < 10; i++) { // 취소 요청 확인 token.ThrowIfCancellationRequested(); Console.WriteLine($"작업 중... {i + 1}"); Thread.Sleep(1000); // 작업 시뮬레이션 } } } ``` CancellationToken의 중요성 1. 자원 관리 : 비동기 작업이 필요 없어진 경우, CancellationToken을 사용하여 작업을 중단함으로써 시스템 자원을 효율적으로 관리할 수 있습니다. 2. 응답성 : 사용자 인터페이스(UI) 애플리케이션에서 사용자가 작업을 취소할 수 있는 경우, CancellationToken을 통해 즉각적으로 응답할 수 있습니다. 3. 비동기 프로그래밍 : 비동기 작업의 흐름을 제어할 수 있는 유연성을 제공합니다. 이는 특히 네트워크 요청, 파일 I/O 등 시간이 오래 걸리는 작업에서 유용합니다. CancellationToken의 사용 시 유의사항 - 예외 처리 : 작업이 취소되면 `OperationCanceledException`이 발생할 수 있으므로, 이를 적절히 처리해야 합니다. - 상태 확인 : CancellationToken을 주기적으로 확인하여 작업이 취소되었는지를 확인하는 것이 중요합니다. - <a href='https://sangseek.com/sangseeks/스레드 안전성/ko'>스레드 안전성</a> : CancellationTokenSource와 CancellationToken은 스레드 안전성을 고려하여 설계되었지만, 이를 사용할 때는 항상 스레드 안전성을 염두에 두어야 합니다. 결론 CancellationToken은 C 에서 비동기 프로그래밍을 보다 효율적이고 유연하게 만들기 위한 중요한 도구입니다. 이를 통해 개발자는 작업을 취소하고 자원을 효율적으로 관리할 수 있으며, 사용자 경험을 개선할 수 있습니다. 비동기 작업을 수행할 때 CancellationToken을 적절히 활용하는 것은 현대 소프트웨어 개발에서 필수적인 요소입니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기