我如何明确清除字节[]

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)

Ama*_*dan 9

你怎么知道他们没被收集?您提供的代码很好,如果您没有任何悬挂引用,它应该有资格收集.

显然,您可以清除引用

outputMessage = null;
Run Code Online (Sandbox Code Playgroud)

并且你可以提示GC它应该用它来完成它的工作:

GC.Collect();
Run Code Online (Sandbox Code Playgroud)

但是,无法保证您的对象将被收集,并且通常不需要手动弄乱GC.

如果您要一直添加新的事件处理程序,是否要删除任何旧事件处理程序?如果没有,那么他们仍然会为您保留参考.

编辑:为了清晰起见,以及OP的新信息