У меня есть код ниже в службе WCF, работающей в IIS Windows Server 2016.
Этот код действительно работает асинхронно? Я спрашиваю вас, потому что DoStep занимает около 350 мс, но когда я отправляю 250 запросов в минуту (1 запрос в 120 мс, моя служба, кажется, имеет значительную задержку.
Является ли эта задержка (около 30 секунд в большинстве вызовов) нормальной? Каждый запрос открывает 19 задач.
Сервер не является чем-то особенным, просто имеет 4 процессора и 64 ГБ ОЗУ
var aAsyncTasks = new Task[19];
AsyncResult = new AsyncDataClass[19];
//Start Process
for(aa=0;aa<18;aa++)
{
AsyncResult[aa] = new AsyncDataClass();
//Start Async Proccess
Func<Task> aAct = async () {
await DoStep( AsyncResult[aa]).ConfigureAwait(false);
};
var aCurrentTask = aAct();
aAsyncTasks[aa] = aCurrentTask;
}
//wait for all tasks
Task.WaitAll(aAsyncTasks);
//Manage all AsyncResults
..............
private async Task DoStep(out AsyncDataClass aResultData)
{
await Task.Run( () => {
// Do Job here. **It takes about 350 ms**
});
}