C#.NET 使用Task.Run和Task.Delay 延时执行任务

发布时间 2023-12-01 11:40:14作者: runliuv

C#.NET 使用Task.Run和Task.Delay 延时执行任务

 

环境:

.NET 4.5.2

.NET WEB MVC + WEB API。

 

示例代码:

using CommonUtils;
using System;
using System.Threading.Tasks;
using System.Web.Http;

namespace WebApiTaskDelay.ApiControllers
{
    public class MyController : ApiController
    {
        // GET: api/My
        public string Get()
        {
            #region MyRegion

            Task.Run(async () =>
              {
                  Log4NetUtil.Info("Delay 1:" + DateTime.Now.ToString("HH:mm:ss.fff"));
                  await Task.Delay(6000);
                  //换成自己的业务(任务)代码
                  Log4NetUtil.Info("Delay 2:" + DateTime.Now.ToString("HH:mm:ss.fff"));
              });

            #endregion

            Log4NetUtil.Info("同步返回:" + DateTime.Now.ToString("HH:mm:ss.fff"));

            return "111:" + DateTime.Now.ToString("HH:mm:ss.fff");
        }

        // POST: api/My
        public void Post([FromBody]string value)
        {
        }
    }
}

执行效果。

INFO  2023-12-01 11:32:32,658    41ms [6] OH       Info - 同步返回:11:32:32.615
INFO  2023-12-01 11:32:32,660    43ms [7] OH       Info - Delay 111:32:32.617
INFO  2023-12-01 11:32:38,678  6061ms [6] OH       Info - Delay 211:32:38.678

 

-