相关疑难解决方法(0)

.net 4.5中的异步和同步之间的区别

在我阅读.Net 4.5中的异步编程asyncawait关键字时,我在这里阅读以下段落

处理异步请求

在启动时看到大量并发请求或具有突发性负载(并发性突然增加)的Web应用程序中,使这些Web服务调用异步将提高应用程序的响应能力.异步请求与同步请求相同的处理时间.例如,如果请求进行需要两秒钟才能完成的Web服务调用,则无论是同步执行还是异步执行,请求都需要两秒钟.但是,在异步调用期间,在等待第一个请求完成时,不阻止线程响应其他请求.因此,当有许多并发请求调用长时间运行的操作时,异步请求会阻止请求排队和线程池增长.

对于粗体字,我无法理解异步请求如何像同步请求一样处理相同的时间?

例如:

public async Task MyMethod()
{
    Task<int> longRunningTask = LongRunningOperation();
    //indeed you can do independent to the int result work here 

    //and now we call await on the task 
    int result = await longRunningTask;
    //use the result 
    Console.WriteLine(result);
}

public async Task<int> LongRunningOperation() // assume we return an int from this long running operation 
{
    await Task.Delay(1000); //1 seconds delay
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

我所理解的是LongRunningOperation()从第一行调用开始执行并在调用后Task<int> …

.net c# asp.net task-parallel-library async-await

18
推荐指数
2
解决办法
4万
查看次数

标签 统计

.net ×1

asp.net ×1

async-await ×1

c# ×1

task-parallel-library ×1