繁体   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