我想知道如何使一个字符串或一个StringBuilder C函数,其输出由参数的字符串。我发现一个伟大的答案

调用非托管函数从C#:我应该通过的StringBuilder或使用不安全的代码

但是我有个疑问。任何人都可以向我解释为什么导入函数执行期间,垃圾回收器不会重新定位(管理)StringBuilder实例?

有帮助吗?

解决方案

请参阅缺省封送弦乐中以了解如何串和StringBuilder的是使用COM和P /调用时编组。它并没有明确说的为什么的使用模式是安全的,但表明使用字符串和StringBuilder的对于P / Invoke的支持和预期的行为。我怀疑编组系统采用钉扎缓冲器用于外部呼叫的持续时间,从而防止由GC重新定位它的照顾。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top