Microsoft MVP성태의 닷넷 이야기
TaskAwaiter 구현 질문 입니다. [링크 복사], [링크+제목 복사],
조회: 13810
글쓴 사람
C#스터디
홈페이지
첨부 파일
 

ICriticalNotifyCompletion 및 INotifyCompletion

위 두개의 인터페이스를 상속 받아서 TaskAwaiter 구조체를 구현 하였습니다.

TaskAwaiter 구조체는 GetAwaiter() 메서드를 통해 사용되고


자체적으로 커스텀된 Task를 구현하였는데요

궁금한 것이

ICriticalNotifyCompletion, INotifyCompletion 둘중 어떤 것을 상속받아 구현해야 하는지 궁금합니다.

일단 두개 다 상속받아 처리했을땐 항상 UnsafeOnCompleted(Action continuation) 메서드만 호출되는 것 같았습니다.

또한 INotifyCompletion만 구현 했을 경우는 당현하겠지만 OnCompleted(Action continuation) 메서드만 호출 되었구요

어떤 상황에서 둘다 사용해야 하는지 또는 어떤걸 사용 해야 하는지 궁금합니다.








[최초 등록일: ]
[최종 수정일: 1/12/2022]


비밀번호

댓글 작성자
 



2022-01-12 04시20분
도움말을 보면,

ICriticalNotifyCompletion.UnsafeOnCompleted(Action) Method
; https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.icriticalnotifycompletion.unsafeoncompleted

다음과 같은 주석을 볼 수 있습니다.

Unlike OnCompleted, UnsafeOnCompleted doesn't have to propagate ExecutionContext information.

그리고 저 말의 의미는 아래의 글을 읽어보시면 이해가 될 것입니다.

HttpContext.Current를 통해 이해하는 CallContext와 ExecutionContext
; https://www.sysnet.pe.kr/2/0/1608#unsafe_tp

그런데, 대단하시군요. ^^ 저는 예제 삼아 구현은 했어도,

C# - await을 Task 타입이 아닌 사용자 정의 타입에 적용하는 방법
; https://www.sysnet.pe.kr/2/0/11456

그걸 현실적으로 사용해 보려는 노력까지는 안 했습니다.
정성태

... 76  77  78  79  80  [81]  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
466이승기9/25/200613757Attribute를 이용한 COM 구현 시 interface의 상속 [1]
467이승기9/27/200613346    답변글 [답변]: Attribute를 이용한 COM 구현 시 interface의 상속
4659/23/200612857vb.net에서 c에서 보내는 Post메쎄지를 잡아서 처리할수 없을가요? [1]
464정윤수9/22/200614728asp.net 에서 DataSet 을 RecordSet 으로 변환 [2]
463sagi...9/22/200613647IE 제어 (BHO) 중 데이터 형에 질문 드립니다. [1]
462[손님]9/21/200615217ASP.NET 에서 COM+ 호출시 프로그램 구조를 어떻게 만들어야 할지...조언 부탁합니다. [2]파일 다운로드1
461정태운9/19/200615118Vista RC1에서 XPS Document를 Image로 변환하는 코드의 특정 API 가 동작하지 않습니다. [2]
459이방은9/14/200614172축하합니다.. [1]
458이승용9/7/200615498스마트 클라이언트 관련 질문입니다. [4]
456guest9/7/200615142데이타셋 암호화 방법...이 있을까요? [2]
451임은주8/31/200614802mms 스트림을 로컬 파일로 저장해주는 프로그램 에 대해서 여쭤볼께요 [1]
448guest8/28/200615329서버인증서및클라이언트인증서 발급
449정성태8/28/200614813    답변글 [답변]: 서버인증서및클라이언트인증서 발급
450ligh...8/29/200615051        답변글 [답변]: [답변]: 서버인증서및클라이언트인증서 발급 [3]
468light9/28/200615101            답변글 [답변]: [답변]: [답변]: 서버인증서및클라이언트인증서 발급
472정성태10/5/200615590    답변글 [답변]: 서버 인증서 및 클라이언트 인증서 발급
475ligh...10/11/200614472        답변글 [답변]: [답변]: 서버인증서및클라이언트인증서 발급
446윤경재8/20/200619922COM+ 프로젝트 디버깅 방법. [2]파일 다운로드1
442이남호8/7/200614916스마트클라이언트에 Farpoint Winform을 이용했는데 배포가 안되요.
443이남호8/7/200616838    답변글 [답변]: 스마트클라이언트에 Farpoint Winform을 이용했는데 배포가 안되요.
441강혜영8/5/200615834SHDocVw를 이용한 익스플로어 제어
444정성태8/7/200614012    답변글 [답변]: SHDocVw를 이용한 익스플로어 제어
445강혜영8/8/200614686        답변글 [답변]: [질문]: SHDocVw를 이용한 익스플로어 제어 [1]
437혀기7/25/200613292DirectoryEntry의 Childrend에 Add할때 엑세스가 거부됩니다~ㅜㅜ [2]파일 다운로드1
436조성택7/24/200613115IE를 가로채서 그리고 싶을때.. [1]
439태기7/25/200613802    답변글 [답변]: IE를 가로채서 그리고 싶을때..(재질문) [1]파일 다운로드1
... 76  77  78  79  80  [81]  82  83  84  85  86  87  88  89  90  ...