假设我有100项任务需要花费10秒钟来完成。现在,我只想一次运行10个,例如这10个中的1个完成另一个任务,直到全部完成。
现在,我总是使用ThreadPool.QueueUserWorkItem()这种任务,但是我已经读到这样做是不好的做法,应该改用Tasks。
ThreadPool.QueueUserWorkItem()
我的问题是,我在任何地方都找不到适合自己的案例的好例子,因此您可以让我开始如何通过Tasks实现此目标吗?
SemaphoreSlim maxThread = new SemaphoreSlim(10); for (int i = 0; i < 115; i++) { maxThread.Wait(); Task.Factory.StartNew(() => { //Your Works } , TaskCreationOptions.LongRunning) .ContinueWith( (task) => maxThread.Release() ); }