我已经将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())是否还意味着所有上述函数都异步运行而未将它们标记为异步,这是一种好习惯吗?
最后一个问题是,与进行所有功能(异步/等待)之间有什么区别
答案 0 :(得分:0)
1。最好是异步上传过程
2。使用Task.Run(()=>UploadDocumentAsync());
3 .Async告诉调用方,我是一个异步方法,请不要等待我。在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");
}