I am developing a console app.
I want to use a Threadpool to perform web downloads. Here is some fake code.
for (int loop=0; loop< 100; loop++) { ThreadPool.QueueUserWorkItem(new WaitCallback(GetPage), pageList[loop]); } snip private static void GetPage(object o) { //get the page }
How do I prevent my code from starting more than two (or ten, or whatever) simultaneous threads?
I have tried
ThreadPool.SetMaxThreads(1, 0); ThreadPool.SetMinThreads(1, 0);
But they seem to have no impact.
I would use Parallel.For
and set MaxDegreeOfParallelism
accordingly.
Parallel.For(0, 1000, new ParallelOptions { MaxDegreeOfParallelism = 10 }, i => { GetPage(pageList[i]); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With