1 回答
1
WinSCP .NET 程序集Session
类具有该Dispose
方法。虽然它可能被 C++/CLI 隐藏了。您Dispose
使用delete
. 请参阅How do you dispose of an IDisposable in Managed C++和Calling C++/CLI delete on C# object。
通常,即使您不这样做,垃圾收集器也会为您执行此操作(在不可预知的时刻),因为您不会保留对旧会话的引用。但它绝对不会让你的机器内存不足。
另一方面,无论如何,您都需要调用Dispose
(the delete
) 来关闭未使用的会话,否则您可能会用完与服务器的允许连接(甚至耗尽服务器的资源)。
如果要检查是否以及何时释放会话,请设置Session.DebugLogPath
并搜索日志以查找以下条目:
[2014-04-23 08:08:50.756Z] [000a] Session.Dispose entering
当程序完成时,您的问题是否有可能发生内存泄漏是无关紧要的。当进程完成时,操作系统会释放进程分配的任何内存。无论程序本身有什么泄漏/错误/任何东西。另请参阅程序退出时是否释放堆?无论如何,我相信您的代码不会泄漏内存。
于 2014-04-23T06:11:01.063 回答