상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
풋옵션의 힘: 5가지 이유로 알아보는 기회
풋옵션으로 시장의 함정을 피하는 8가지 방법
파일럿을 꿈꾸는 당신에게 필요한 5가지 조언
파일럿으로서의 미래: 5가지 이유로 직업 전망 분석
전쟁에서 배운 사랑: 8가지 감동적인 이야기
도시락으로 즐기는 여행, 4가지 핵심 아이디어
유럽의 환상적인 축제들, 간접 체험할 7가지
유럽의 환상적인 전망대, 방문할 7곳
유럽의 유명한 디저트, 꼭 맛봐야 할 10가지
"네팔의 전통 음악, 5가지 이유로 감성을 자극하다"
"네팔의 성스러운 강, 4가지 이유로 물에 몸을 담가보자"
몽골, 진정한 자연의 아름다움을 느낄 수 있는 X가지 이유
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순위입니다.
수정하기
취소하기