Just another update.
I left it running to about 60% completion, but then saw that it was consuming like 600mb of memory.
Microsoft tells you 'oh you don't have to worry about memory management, the .Net framework does it for you.....'
But they lie!!
Working with .Net List<> objects- iterating through them in a foreach() statement prevents you from disposing of them - freeing memory.
So I changed it to be more array like.
Eg: Instead of foreach() I am now doing for(i=0;i<sub.topics.count;i++){ Topic t = sub.topics; }
The benefit of this is that I can actually dispose of the 'Topic' classes when I am finished committing them to a database.
Now the memory management seems to be a lot cleaner. It goes up and down from 40mb to 80mb, but always returns to around 40-50.
In addition, I have increased the parallel thread count to 25, so it can work on up to 25 topics simultaneously.
So it should be able to reacquire where it was before I turned it off earlier soon.
It was about 60% earlier when I turned it off (after 5 hours of working), I just turned it back on about 10 minutes ago and its about 15% complete.
Further more - it will download offline copies of the Posts to the hdd - so it doesn't have to constantly go back to the bioware forums to grab the information.
This is particularly useful for the top and resume functionality.
There has been a lot of messages asking for it to be run against Neverwinter Nights 2 forums.
I will see if I can get it setup to work on those forums too.