2009-07-15 92 views
3

使用P/Invoke时,添加[SuppressUnmanagedCodeSecurity]可以在受信任的场景中将来自托管代码的调用加速到非托管代码。如何为回调设置SuppressUnmanagedCodeSecurity?

当我从非托管代码调回托管代码时,有什么方法可以在相反方向完成相同的事情,以加快速度?在我们的应用程序中,性能分析显示在这方面开销要高得多。

回答

0

我不认为有任何这样的安全检查从非托管到托管。

如果您进入Process Explorer,您可以看到安全检查发生时的计数。找到你的过程,点击属性,转到.NET选项卡,然后从下拉菜单中选择“.NET CLR安全性”。

我写了一个简单的测试应用程序,只调用非托管代码,传递一个委托,然后非托管代码调用立即委托。在我的测试循环中,每次调用都有一次安全检查。

然后我说[SuppressUnmanagedCodeSecurityAttribute()]到托管--->未管理的呼叫和安全检查去了0

+0

但我在与回调速度类似的问题,所以让我知道,如果你”我学到了有用的东西。 – 2010-03-22 19:02:27