Kir*_*ran 7 .net c# garbage-collection memory-leaks memory-management
我正在创建新的字节数组,这些数组不是由GC收集的,而是存在于内存中并增加了专用字节.下面的代码每10秒执行一次.完成后如何明确清除变量?
byte[] outputMessage = new byte[10000];
//Do some work here
Run Code Online (Sandbox Code Playgroud)
你怎么知道他们没被收集?您提供的代码很好,如果您没有任何悬挂引用,它应该有资格收集.
显然,您可以清除引用
outputMessage = null;
Run Code Online (Sandbox Code Playgroud)
并且你可以提示GC它应该用它来完成它的工作:
GC.Collect();
Run Code Online (Sandbox Code Playgroud)
但是,无法保证您的对象将被收集,并且通常不需要手动弄乱GC.
如果您要一直添加新的事件处理程序,是否要删除任何旧事件处理程序?如果没有,那么他们仍然会为您保留参考.
编辑:为了清晰起见,以及OP的新信息
归档时间: |
|
查看次数: |
32737 次 |
最近记录: |