TaskCompletionSource<T> Async
이 포스트에 있는 내용이 언제나 확실한 정답은 아닙니다. 진실이라고 생각해 왔던 전제가 시간의 지남에 따라 들어나지 않았던 다른 이면 때문에 좋은 방향으로 이끌어 낼 수 있는 역할로 변환 되는게 역사적으로도 많은 증명 있었습니다. 그렇지만 저는 현재 상황에서 최선의 답을 찾고자 노력하였으며 이 글을 읽는 다른 분들에게 다음 길을 갈 수 있도록 도와주는 디딤돌이 되고자 노력하고자 포스팅을 통해 공유하고자 하는 것입니다. 그리고 프로그래머라는 타이틀을 달고 살아야 한다면 "왜"라는 의문을 항상 가지고 다니면서 자신의 위치에 안주하지 않고 항상 노력하는 모습으로 살아 가고자 합니다. 언제든 지적이나 오류가 있으면 피드백 부탁 드리겠습니다. ing™ |
Task<T> 객체를 이용해서 비 동기로 작업을 손 쉽게 수행하도록 프로그램을 개발할 수 있다. 그렇지만 TaskCompletionSource<T>를 사용하면 명시적으로 결과값 리턴을 통제할 수 있게 할 수 있다. 우선 프로그램 화면을 보도록 하자.
[그림1] WPF 테스트 화면
테스트를 해볼 시나리오는 "대기 시작" 버튼을 누르고 대기 종료 버튼을 누르면 그 사이의 대기 시간을 TextBlock 화면에 표시해주는 시나리오를 가지고 프로그램으로 개발해 보도록 하겠다.
[코드1] WPF에서 '대기 시작' 버튼 코드
[코드2] WPF에서 "대기 종료" 버튼 코드
이번 포스트의 소스 파일을 첨부할테니 직접 실행해 볼 수 있을 것이다.
소스 코드 자체에 주석과 직관적인 코딩으로 충분히 파악이 가능할 것으로 예상하므로 별도의 설명을 생략하도록 하겠습니다. 포스트의 내용이 장황한 설명 보다는 주석과 소스코드 자체 만으로도 이해할 수 있도록 하기 위해 노력하였습니다. 실 개발에서도 적용할 수 있도록 간단하면서도 현실적인 예제 프로그램을 통해 각 소스를 만들고 이해 시키고자 하였으며 실무에 필요한 개발요구 사항들을 해결 하는데 도움이 되고자 노력하였습니다. 그리고 소스와 같이 있는 주석을 이용해 nDoc이나 별도의 자동 Document 제작 유틸로 API 문서를 만드는 데에도 도움이 되었으면 한다. ing™ |
'.Net Framework' 카테고리의 다른 글
[Unit Test] 테스트 모드를 64비트에서 테스트 - 64bit COM+ 테스트시 주의 (0) | 2013.05.14 |
---|---|
[JSON] Json.Net - Newtonsoft.Json lowercase keys - 키값을 소문자로 만들기 (0) | 2013.05.10 |
[ASP.NET] Ajax Control Toolkit 2013-04-30 release (0) | 2013.05.02 |
Assembly Version Loading (0) | 2013.05.01 |
[Entlib] Microsoft Enterprise Library 6.0 Release가 되었다. (0) | 2013.04.26 |