Asp.net Web API |Загрузка документа Async ожидает или Task.Run - PullRequest
0 голосов
/ 20 октября 2018

У меня есть веб-API asp.net, интегрированный с общедоступным веб-сайтом пользовательского интерфейса

на веб-сайте будет много одновременных пользователей, которые подают заявки, api вытяните это в базу данных.Функции лота, такие как:

  • Получить данные

  • Обновить данные

  • Загрузить файлы

Я пытаюсь использовать асинхронные операции (особенно при загрузке документов)

Я отредактировал все функции для использования await Task.Run () => bla ())), вот так:

if (Someconditions)
{
await Task.Run(() => Function1());
await Task.Run(() => Function2())
if (Someconditions)
await Task.Run(() => Function3())

if (Someconditions)
await Task.Run(() => CreateUpdateDocumentDetails)); // Uploading document

Для функции загрузки документов я очень запутался

Должен ли я использовать await UploadDocumentAsync() или

Task.Run(()=>UploadDocumetSync()) or Task.Run(()=>UploadDocumentAsync())

Также ли Task.Run (SyncFunc ()) значит все вышеперечисленные функции выполняются асинхронно, не помечая их как асинхронные, и это хорошая практика?

Последние вопросы, в чем разница между этим и выполнением всех функций (async / await)

1 Ответ

0 голосов
/ 20 октября 2018

1. Процесс загрузки лучше Async

2. Использование Task.Run(()=>UploadDocumentAsync());

3. Async говорит вызывающей стороне, что я асинхронный метод, не ждите меня .awaitвнутри Task () запросите ожидание асинхронной задачи.

, например, после запуска нижеприведенной программы 10 секунд будет ждать выполнения задачи.

public static void Main(string[] args){
     Task();
     System.Console.WriteLine("main thread is running while waiting");
     Console.ReadLine();
}
private static async void Task(){
     await Task.Delay(10000);
     Console.WriteLine("Waited for 10s");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...