我一直在尝试这样做:
在这种情况下,创建'N'任务以执行并持续运行此数量的一段时间 一个任务完成,然后我应该开始一个新的任务来保持相同数量的任务。
我不知道是否可以使用TaskScheduler处理这个问题,或者我必须创建一个自定义的TaskScheduler。
我认为可行的另一个选择是,当任务完成时使用TPL DataFlow Producer-Consumer,然后taskcheduler接受生产者生成的新任务。
问题是:如果完成任务以保持相同数量的任务,我该如何创建新任务?
答案 0 :(得分:8)
此代码将继续并行运行numTasks
个任务。
int numTasks = 5;
SemaphoreSlim semaphore = new SemaphoreSlim(numTasks);
while(true)
{
semaphore.Wait();
Task.Run(() =>
{
DoSomething();
})
.ContinueWith(_ => semaphore.Release());
}
答案 1 :(得分:0)
任务计划程序可用于运行可用于执行一组工作/任务的可执行文件。或者,您可以简单地创建一个Windows服务...