P/调用粗化
我想知道.NET CLR 是否支持 P/Invoke 粗化。
例如,如果我们有三个处理 blittable 类型的后续 P/Invoke 调用:
Native.DrawPolygon(1.0f, 1.0);
Native.DrawPolygon(2.0f, 1.0);
Native.DrawPolygon(3.0f, 1.0);
那么我们只需对整个块执行一次托管到非托管上下文切换,而不是毫无意义地执行三次。
I wonder whether .NET CLR supports P/Invoke coarsening.
For example if we have three subsequent P/Invoke calls that deal with blittable types:
Native.DrawPolygon(1.0f, 1.0);
Native.DrawPolygon(2.0f, 1.0);
Native.DrawPolygon(3.0f, 1.0);
then we could perform managed-to-unmanaged context switch for the whole block just once, instead of doing it pointlessly three times.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,框架不这样做。您必须构建 API 以最大限度地减少托管到非托管的切换。
No, the framework doesn't do this. You would have to build your API to minimise the managed-to-unmanaged switches.