Microsoft MVP성태의 닷넷 이야기
TaskAwaiter 구현 질문 입니다. [링크 복사], [링크+제목 복사],
조회: 12572
글쓴 사람
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)
5431한예지 donator12/17/202015271비동기 소켓 서버 질문 드립니다! [1]
5430종범12/16/202014039[WPF] Task 관련 재질문 드립니다. [2]파일 다운로드1
5429종범12/16/202014383[WPF] Task 관련 질문 드립니다. [1]파일 다운로드1
5428최선호 donator12/14/202014284성태님 ㅠ.ㅠ 소켓 서버 작동이 이상합니다 ㅠ.ㅜ [1]파일 다운로드1
542712/11/202014787LPBOOL Win32 마샬링 질문이 있습니다. [6]
5426하태12/11/202012809안녕하세요 정성태님! C# winform Calendar 컨트롤 질문 드리겠습니다!. [1]
5425정유경12/10/202012990[왕초보] (4) [1]
5423정유경12/8/202013176[왕초보] (3) [2]
5422이승준12/7/202018162VisualStudio 2019의 인텔리센스가 느려지는 경우가 있나요? [4]
5421정유경12/6/202015026[왕초보] (2) [4]
5420정유경12/5/202014662[왕초보] 랜덤 숫자와 배열에 관한 질문 [1]
5419종범12/4/202014925[WPF] Threadpool사용 시 크리티컬 섹션 대응 질문 입니다. [4]
5418한예지 donator11/27/202015639클래스, 인터페이스 크기를 구하고 싶은데 어떻게 해야 될까요? [1]
5417한예지 donator11/27/202013504인터페이스와 추상클래스에 대해 궁금증이 있습니다. [1]
5416한예지 donator11/27/202013310Object 질문 있어요. [1]
5415한예지 donator11/25/202012931교재 213쪽 예제 4.25 질문드립니다. [1]
5414한예지 donator11/23/202014175제네릭 리스트 출력하는 방법이 궁금합니다. [1]
5413민석11/20/202015072C# minidump를 프로그램이 중단 될 때 만들고 싶습니다. [1]파일 다운로드2
5411원격11/20/202013116visualstdio로 웹 사이트로 만들었을때 원격 디버깅이 가능한가요? [1]
5410최성재11/16/202013584vcpkg로 GDCM 내려받을 때 USE_VTK 설정하는 방법-2번째 질문 [1]파일 다운로드1
5409민성11/16/202017068혹시 다른 질문이긴 한데요 [1]
5408최성재11/16/202013640vcpkg로 GDCM 내려받을 때 USE_VTK 설정하는 방법 [1]
5407민성11/11/202012724안녕하세요 yield return에 대해서 [1]
5406질문자11/10/202013433안녕하세요 wcf nettcpbinding의 timeout에 관해서 질문이 있습니다. [2]
5405민성11/9/202013679안녕하세요 이번에도 또 어려운 질문 같습니다. [1]
5404박진우11/6/202015420안녕하세요. SqlParameter 생성자 관련 질문 있습니다. [1]
... 16  17  18  19  20  [21]  22  23  24  25  26  27  28  29  30  ...