Microsoft MVP성태의 닷넷 이야기
TaskAwaiter 구현 질문 입니다. [링크 복사], [링크+제목 복사],
조회: 5572
글쓴 사람
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

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

... 16  17  18  19  20  21  22  23  24  [25]  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5290베도빈2/15/20207320직접 제작한 사용자 정의 콘트롤 DLL, 실행파일에 포함시켜 배포할 수 있을까요? [1]
5288김성배2/14/20207716c# 참조추가 기능에서 DirectX 참조가 보이지 않아요.. DircetX 11 은 설치 되어 있습니다. [1]
5287C# 초...2/14/20206739프로그램 실행 질문 드립니다. [4]파일 다운로드1
5286gongs2/3/202014159윈도우 배율 및 레이아웃에 대한 질문입니다. [3]
5285강성욱1/27/20207860작업관리자에 표시되는 스레드 개수와 프로그램 내 스레드 개수 일치 [1]
5284이상준1/15/202013610출력창에 '스레드가 종료되었습니다' 문구 문의 [2]파일 다운로드1
5282봉봉이 1/13/202010335소켓 비동기 ReceiveTimeOut 구현 [9]파일 다운로드1
5281봉봉이 1/13/20208348소켓 비동기 ReceiveTimeOut 구현 [2]
5280sdd1/8/20206945데이터 저장, 배치파일 관련하여 질문드립니다. [4]
5279김창한12/27/20197918dsoframer ocx [3]
5278guest12/27/20196703CLR 스레드 풀 관련 질문 [1]
5277방문자12/26/20196542WindowsForm 질문드립니다. [3]
5276진우12/17/20198253c++/c# 에도 파이썬 가상환경 같은 기능 혹시 있는지 궁금합니다. [3]
5275송재필12/17/20197949아래 'c#8.0 프로그래밍 교제 예제 관련 문의 드립니다' 의 원인이 압축 파일의 문제인듯 합니다. [2]파일 다운로드1
5272정영훈12/13/20198129byte => string => byte 변환 문의드립니다. [5]파일 다운로드1
5270김세미12/3/20197865c#8.0 프로그래밍 교제 예제 관련 문의 드립니다. [4]
5269달려라라...12/2/20198007C# winform(framework) tabcontrol 에서 button 함수 관련 질문 [3]파일 다운로드1
5266엔벌잉11/26/20196940라즈베리파이 autostart관련 질문 [2]
5265해나11/25/20197023C# 6.0 책 내용 문의 [1]
5264김혜원11/18/20199492C# CodeSign에 대해 여쭤볼 것이 있습니다 [4]
5263정환맨11/17/20197613Task관련 질문입니다 [3]
5262닷린이11/14/20199007Dispatcher 와 synchronizationcontext의 관계가 궁금합니다. [6]
5260방문자11/13/20197961안녕하세요 도움받고 싶습니다 [1]
5259ming11/13/20197065string타입 파라메터로 넘길때 메모리 내부가 궁금합니다. [3]
5258C#초보11/13/20198872DCOM COM+ 등록 관련 문의드립니다. [7]
5257C#초보11/9/20197518파일 저장 방법에 대해 조언 부탁드립니다. [3]
... 16  17  18  19  20  21  22  23  24  [25]  26  27  28  29  30  ...