软件环境: 
win2000+.net2003+C# 
我建立了一个服务项目,由于程序中频繁的使用链表IList导致内存不能自动回收。因此我采用了 java代码:                          GC.Collect(); 
                        GC.WaitForPendingFinalizers(); 
                        GC.Collect();  来回收内存。在控制台方式下没有任何问题,内存被回收了并且程序运行正常。但是在服务方式下OnStart这个线程会被挂起,导致程序不能运行。  
我认为WaitForPendingFinalizers函数会挂起任何线程去回收内存,但是不会挂起主线程即main();有于.net下会收内存是非常模糊的。我看过很多资料,没有什么人能说清楚。并且手动回收内存的方式只有显示的调用GC。所以我不知道这个是不是.net里面的一个问题,不能在服务程序中调用WaitForPendingFinalizers()函数,不知道有什么解决的办法?