关于图像内存释放和删除图像文件的问题!(急!)
在程序中有一个树视图,树视图里的节点是各图像文件的节点,当用户单击各个节点的时候,就有一个窗口来显示该节点对应的图像,窗口只用了一个,所以说应该是用户单击各个节点的时候,该窗口来切换显示各个图像,每个节点的图像路径我是知道的,所以在切换图像的时候,窗口所做的操作是:先释放窗口图片框原来加载的图像,然后通过Image.FromFile(@文件名)来显示当前点击的图像,但是我发现在我连续不断地点击节点切换图像的时候,程序的内存会不断地往上升,所以我在释放图片框原来加载的图像的时候,再加了一句 GC.Collect(),调用垃圾回收器强制释放图像所占内存,因为点击的速度太快,垃圾回收器并没有即时地释放原来图片所占的内存。现在的问题是,当我右击删除某图像节点时,需要删除该图像文件,因为窗口正好显示当前要删除的图像节点的图像,虽然我在删除图像文件之前,先将窗口关闭,在窗口的Dispose方法中,将图像释放掉,并调用了 GC.Collect(),但是还会报出错误:“另一进程正在使用该文件,因此无法访问该文件”。这种出错的情况尤其发生在连续不断点击节点切换图像的时候,如果不点击节点切换,删除图像文件不会报这种错误。我想问一下,有什么方法可以解决这个问题?我想不到解决的方法。不甚感激,谢谢!!!