stringbuilder를 사용한 안전하지 않은 코드 및 고정 된 명령문
-
13-09-2019 - |
문제
매개 변수별로 문자열을 C 함수로 통과하는 방법에 대해 궁금했습니다. 나는 훌륭한 대답을 찾았습니다
C#에서 관리되지 않는 함수 호출 : StringBuilder를 통과하거나 안전하지 않은 코드를 사용해야합니까?
그러나 나는 의심이있다. 수입 기능 실행 중에 쓰레기 수집기가 왜 (관리 된) StringBuilder 인스턴스를 재배치하지 않는 이유를 설명 할 수 있습니까?
해결책
보다 현악기의 기본 마샬링 COM 및 P/ONCOKE를 사용할 때 String 및 StringBuilder가 마샬링되는 방법에 대한 자세한 내용. 명시 적으로 말하지 않습니다 왜 사용 패턴은 안전하지만 P/Invoke에 문자열 및 StringBuilder를 사용하는 것이 지원되고 의도 된 동작임을 나타냅니다. 마샬링 시스템이 외부 통화 기간 동안 버퍼를 고정하여 GC가 재배치하지 못하게한다고 생각합니다.
제휴하지 않습니다 StackOverflow