Firstly, calling GC.Collect provides only garbage collection. If something else is mentioned, then it still will not be collected.
As for your answer, I believe that they will be collected as soon as they are no longer referenced, which will require the delegate to be completed and no longer mentioned.
So, if this is a simple use, I believe the delegate will be cleared when it is completed, which will clear the lists
However, you may fall into a trap where the anonymous delegate will not be cleared, but I think ThreadPool should handle this. If not, you might be interested in this SO, especially Rory's answer.
source share