C#限制异步调用的数量

时间:2017-07-13 18:20:08

标签: c# asynchronous task httpwebrequest limit

所以我有这段代码:

var tasks = Enumerable.Range(0, maxsize).Select(index => CallRequestsAsync(param1[index], param2[index]));
            Task.WaitAll(tasks.ToArray());

此代码调用一堆执行webrequests和其他工作的异步任务。我想一次限制最大活动运行任务的数量,一次说50个。然后,如果一个完成工作,将调用一个新的,所以基本上总是有50个一次运行异步任务,直到它完成了我的清单。那么我怎样才能通过上面的格式来实现呢?索引是一个int,用于从外部变量中检索参数。

1 个答案:

答案 0 :(得分:2)

我认为你正在做类似下面的事情:

@ECHO OFF
CLS
ECHO 1. AutoCAD C3D 2015
ECHO 2. AutoCAD Map 2017
ECHO.

CHOICE /C 12 /M "Enter your Choice:"

:: Note - list ERRORLEVELS in decreasing order
IF ERRORLEVEL 2 GOTO c3d2017
IF ERRORLEVEL 1 GOTO c3d2015

:c3d2015
FOR %%V IN (C:\BATCHING\*.dwg) DO start "T" /w "C:\Program Files\Autodesk\AutoCAD 2015\acad.exe" "%%V" /b "C:\BATCHING\insert E-FILE DISCLAIMER layout.scr"
GOTO End

:c3d2017
FOR %%V IN (C:\BATCHING\*.dwg) DO start "T" /w "C:\Program Files\Autodesk\AutoCAD 2017\acad.exe" "%%V" /b "C:\BATCHING\insert E-FILE DISCLAIMER layout.scr"
GOTO End

:End