2011-09-12 1 views
1

.NET CLR이 P/Invoke coarsening을 지원하는지 궁금합니다. 대신 그 일에,P/Invoke coarsening

Native.DrawPolygon(1.0f, 1.0); 
Native.DrawPolygon(2.0f, 1.0); 
Native.DrawPolygon(3.0f, 1.0); 

우리 관리 - 투 - 관리되지 않는 전체 블록에 대한 컨텍스트 스위치 한 번만 수행 할 수 있습니다 : 우리가있는 경우 세 이후의 P는/호출이 blittable 유형과 그 거래를 호출 예를 들어

무의미하게 세 번.

+0

불가능합니다. 그리고 작은 점이 있습니다. 마샬링은 다각형 그리기 비용의 몇 분의 일입니다. 그렇지 않으면 당신이 옳은 일을한다면 당신은 싫어할 것입니다. –

+0

@Hans P/Invoke는 마샬링 이상의 기능을 수행합니다. 예를 들어, GC 모드를 변경합니다. "P/Invoke는 마샬링을 포함하지 않고 10 ~ 30 개의 x86 명령어 오버 헤드가 있습니다." 오버 헤드를 반복하기위한 상당한 오버 헤드 (내 예제에서는 60 가지의 무의미한 지시 사항). 또한 제 경우에는 다각형이 즉시 그려지지 않고 버퍼링됩니다. – carsten

답변

2

아니요, 프레임 워크가이 작업을 수행하지 않습니다. 관리되지 않는 관리되는 스위치를 최소화하기 위해 API를 빌드해야합니다.

관련 문제