我正在编写一个使用一些非托管函数的包装器应用程序,而且我使用了很多pin_ptr。
我的问题是,大部分时间我在方法调用中使用pin_ptr,而pin_ptr变量也在方法调用中声明。当代码成为我们的方法时,我可以遇到任何问题,因为它不再被固定了吗?我应该将声明移到类范围吗?
谢谢!
答案 0 :(得分:2)
您需要在托管堆上固定对象的唯一时间是非托管函数或非托管代码直接访问内存中的对象(例如通过指针)。如果当你的方法退出时,当前没有任何东西正在访问该对象的内存,它可以被取消固定(只要你在下次直接访问它之前再次固定它)。