Microsoft MVP성태의 닷넷 이야기
안정적인 pinning이 가능하네요. [링크 복사], [링크+제목 복사],
조회: 11546
글쓴 사람
guest
홈페이지
첨부 파일

비밀번호

댓글 작성자
 



2022-03-30 07시56분
[guest] 이방법 또한 C# 11의 ref 필드를 대체할순 없을것 같네요. 아마 그 트윗에 올라온 void*로 구현한 사례도 pinning이 안되기때문에 쓸모가 없을듯 합니다. ref 필드가 정말 강력한 녀석이네요
[guest]
2022-03-30 10시24분
구체적인 소스 코드를 올리지 않아서 어떤 수준까지 기대했는지는 모르겠지만, 그 트윗에 올라온 사례는 문제가 없습니다. 왜냐하면 ref struct에 담기는 용도이기 때문입니다.

아마도, 제가 쓴 글의,

C# - Unsafe.AsPointer가 반환한 포인터는 pinning 상태일까요?
; https://www.sysnet.pe.kr/2/0/13018

마지막 부분을 주의깊게 읽지 않으셔서 그렇게 생각하시는 것 같은데요, Unsafe.AsPointer는 힙에 있는 개체의 위치를 읽기 위해 만들어진 용도가 아니고, 스택에 있는 변수의 위치를 읽기 위한 것입니다. 따라서 pinning이 필요 없으므로 그것 역시 ref struct의 용도에 잘 맞아떨어집니다. 그리고 분명히, 마이크로소프트는 GC의 성능 문제로 힙에 ref 필드를 유지하는 것은 안 된다고 이미 명시하고 있습니다.
정성태
2022-03-31 12시28분
[guest] 아. C# 11부터 힙에 ref 필드가 허용되는건줄 알았네요. -_-; 답변 감사드립니다!
[guest]

NoWriterDateCnt.TitleFile(s)