我知道所有的理论:
我知道什么是GC,何时调用dispose,在调用时终结。
我想知道,在你的直播项目中..哪种情况已经使用了所有这些。
答案 0 :(得分:5)
您不应该关心何时以及如何调用GC。它足够聪明地知道何时运行以及要释放哪些对象。
您还应该手动或使用“使用”实现IDisposable的所有对象来处理。然后,您将使用未受管理的资源(如文件)来防止许多错误。
如果你的内存不足,那么你的算法或代码本身就会出现问题。 Manualy调用GC.Collect是一个很大的讨论,特别是在生产代码中。
答案 1 :(得分:1)
根据经验,如果聚合一次性对象,或者如果您持有非托管资源,则需要实现IDisposable。对于这两种情况,清理工作的方式不同。否则,保持简单,不要使用dotnetisms乱丢你的代码
内存泄漏导致服务器崩溃。因果关系。
答案 2 :(得分:1)
资源管理是您不得不做的事情。这不是'我的客户坚持我释放我的记忆'。这简直是一种很好的做法。并非所有应用程序都可能崩溃,用户只需重新启动它们 - 那里有一个或其他服务器应用程序。
如果您开始构建编程库,那么资源管理和并发应该是您的首要任务,否则您将无法快速实施任何解决方案。
HTH
马里奥