.net core/.net 5.0 API接口 线程阻塞异常

首次发布:2021-01-19 12:02
不能直接在API接口里面用 System.Threading.Thread.Sleep阻塞线程,如果需要延时,要用异步处理。
今天碰到这样的一个坑 在win 10 和 windows server 2008 没问题,但在windows server 2019 就出现以下问题

An error occurred while processing your request.

//错误的写法
[Route("api/TestMethod")]
public string TestMethod()
{
    for (int i = 0; i < 3; i++)
    {
        System.Threading.Thread.Sleep(1000);
    }
    return "返回结果";
}
//正确的写法
[Route("api/TestMethod")]
public System.Threading.Tasks.Task<string> TestMethod()
{
    return System.Threading.Tasks.Task<string>.Run(() =>
    {
        for (int i = 0; i < 3; i++)
        {
            System.Threading.Thread.Sleep(1000);
        }

        return "返回结果";
    });
}