簡體   English   中英

Asp.net Web API | 文檔上傳異步等待或Task.Run

[英]Asp.net Web API | Document Upload Async await or Task.Run

我已經將ASP.NET Web API與公共ui網站集成在一起

該網站將有許多並發用戶提交應用程序,api將其提交到數據庫。

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())是否意味着上述所有函數異步運行而未將它們標記為異步,這是一種好習慣嗎?

最后一個問題是,這和使所有功能(異步/等待)有什么區別

1。Async是一個更好的上傳過程

2。使用Task.Run(()=>UploadDocumentAsync());

3。async告訴調用者,我是一個異步方法,請不要等待我。Task()內的await請求等待一個異步任務。

例如,在下面的程序下運行后,將等待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");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM