gpt4 book ai didi

C#在dll中调用go函数,并且在.Net Core中运行,go分配的非托管内存会被垃圾收集吗?

转载 作者:行者123 更新时间:2023-12-01 22:21:02 25 4
gpt4 key购买 nike

我在 Go 中编写了一个文件传输接口(interface),它接受本地路径和远程服务器信息,然后逐 block 传输文件。情况是我想在C#中使用它,我知道Go可以内置到 C 共享 dll 并在 C# 中使用 P/Invoke 调用.我想知道go分配的非托管内存是否会是垃圾收集 ?如果没有,有没有办法释放这部分内存?

最佳答案

垃圾收集器不会知道 Go 代码的非托管内存。
如果你想释放它,你应该在 Go 代码中管理它,或者至少准备一个要在 C# 中调用的函数并释放非托管内存。
我的建议是:

  • Go 中释放内存的函数
  • 然后,当您要处置对象时,在 C# 中调用此函数。
  • 关于C#在dll中调用go函数,并且在.Net Core中运行,go分配的非托管内存会被垃圾收集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63575683/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com