Запуск и извлечение результатов задач параллельно на основе параметра запросаC#

Место общения программистов C#
Ответить
Anonymous
 Запуск и извлечение результатов задач параллельно на основе параметра запроса

Сообщение Anonymous »

У меня есть API, с помощью которого клиент может запросить дополнительные данные ресурса с параметром запроса как

Код: Выделить всё

https:///api/GetAppData?name=appname&getUsers=true&getversion=2.3
По указанному выше URL-адресу я получаю сведения о приложении по имени приложения, а также информацию о пользователях и конкретной версии приложения.
Однако, чтобы получить дополнительную информацию, мне нужно сделать еще два вызова (я знаю, что это плохо, но мы ограничены существующей инфраструктурой.)
Итак, я пытаюсь выполнить параллельную выборку к targetAPI с помощью приведенного ниже кода.

Код: Выделить всё

Task appDataTask= myClient.GetAppDataAsync(identifierId, identifierName, version, token);
Task getUsers= (users.HasValue && users.Value) ?
FetchUsers(titleId: appId, token: token) : null;
Task VersionTask= (version.HasValue && version.Value) ?
FetchVersionApp(titleId: TitleId, token: token) : null;

await Task.WhenAll(appDataTask, getUsers, VersionTask);

AppData app = appDataTask.Result;
AppResponse response = app.ConvertData();
if (getUsers != null) // this means users is requested.
{
DeployedUsers users= getUsers?.Result;
response.Users= users;
}
if (VersionTask!= null) // this means AvailableTo is requested.
{
VersionedApp versionedApp= VersionTask?.Result;
response.version= versionedApp;
}
Как мне этого добиться? запуск этого кода вызовет исключение ArgumentException.

Подробнее здесь: https://stackoverflow.com/questions/786 ... uery-param
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»