由于功能需要,自己建了一个结构体DB_SIGNAL_REPLAY,然后建了一个这个结构体的数组,然后用gcnew申请了这个数组内存空间:
CanMessageReplayBuffer=array<DB_SIGNAL_REPLAY^>(1000000);
考虑到不同线程使用,所以这个数组建立的位置是全局变量,不是函数内的局部变量。
这个数组有点长达到一百万,不过用完后这个数组就没用了,所以我想删了它。
提到gcnew出来的托管对象的删除,天下文字一大抄,大家都原封不动地说不用删除,垃圾管理那里会自动删除。
但是问题是这个数组建立后,通过任务管理器可以看到我的程序占用内存明显增加了50M。
并且即使长时间不再使用这个数组,它也没见自动删除,这个内存增加的也一直存在。
试了各种delete,delete []什么的,貌似都删不掉这个数组,执行后内存的的占用丝毫没见减少。
请问这个到底应该怎么删?求指教。
当然现在的电脑多占50M内存不算什么,不过作为一个技术问题,应该是能够解决的吧?
CanMessageReplayBuffer=array<DB_SIGNAL_REPLAY^>(1000000);
考虑到不同线程使用,所以这个数组建立的位置是全局变量,不是函数内的局部变量。
这个数组有点长达到一百万,不过用完后这个数组就没用了,所以我想删了它。
提到gcnew出来的托管对象的删除,天下文字一大抄,大家都原封不动地说不用删除,垃圾管理那里会自动删除。
但是问题是这个数组建立后,通过任务管理器可以看到我的程序占用内存明显增加了50M。
并且即使长时间不再使用这个数组,它也没见自动删除,这个内存增加的也一直存在。
试了各种delete,delete []什么的,貌似都删不掉这个数组,执行后内存的的占用丝毫没见减少。
请问这个到底应该怎么删?求指教。
当然现在的电脑多占50M内存不算什么,不过作为一个技术问题,应该是能够解决的吧?