P/调用粗化

发布于 2024-12-04 07:54:18 字数 254 浏览 0 评论 0原文

我想知道.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不寐倦长更 2024-12-11 07:54:18

不,框架不这样做。您必须构建 API 以最大限度地减少托管到非托管的切换。

No, the framework doesn't do this. You would have to build your API to minimise the managed-to-unmanaged switches.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文