假设我有100个任务需要10秒钟.现在我想一次只运行10个,就像10个中的1个完成另一个任务一样,直到完成所有任务.
现在我总是习惯于ThreadPool.QueueUserWorkItem()这样的任务,但我已经读到这样做是不好的做法,我应该使用任务.
我的问题是我没有找到适合我的方案的好例子,所以你能让我开始研究如何通过Tasks实现这个目标吗?
我正在使用Asp .Net 4.5.1.我有运行任务,调用Web服务,有些可能会失败.我需要运行N个成功的任务,这些任务执行一些轻微的CPU工作,主要是调用Web服务,然后停止,我想要限制.
例如,假设我们在某个集合中有300个URL.我们需要运行一个调用Task<bool> CheckUrlAsync(url)每个函数的函数,带有限制,这意味着,例如,"同时"只运行5次(换句话说,在任何给定时间最多使用5个连接).此外,我们只想执行N(假设100)成功操作,然后停止.
你会怎么做?