如何在页面加载后的特定时间间隔内运行方法?

时间:2016-06-03 18:53:01

标签: c# asp.net methods

此方法调用页面加载。

页面加载:

    protected void Page_Load(object sender, EventArgs e)
    {
        run_after_pageload();
    }

我的方法:

public void run_after_pageload()
{
                //  code
}

3 个答案:

答案 0 :(得分:0)

除了使用 QueueBackgroundWorkItem (https://docs.microsoft.com/en-us/dotnet/api/system.web.hosting.hostingenvironment.queuebackgroundworkitem),您还可以使用 HttpTaskAsyncHandler,使用async,使用await Task.Delay(xxxx)。

大致如下:

using System;
using System.Web;
using System.Threading.Tasks;

namespace PageLoadWithDelay
{
    public class DelayedLoad : HttpTaskAsyncHandler
    {
        private int _delay = 1 * 1000;
        public override async Task ProcessRequestAsync(HttpContext context)
        {
            var response = context.Response;

            await LongRunningDatabaseOrNetworkTask(....);

            await Task.Delay(_delay);

            await LongRunningDatabaseOrNetworkTask(....);
        }

        public override bool IsReusable
        {
            get { return true; }
        }

        public override void ProcessRequest(HttpContext context)
        {
            throw new Exception("no implementation.");
        }
    }
}

并使用它代替常规的 aspx 页面。

答案 1 :(得分:-2)

您应该查看System.Web.UI.Timer。

Have a look here

答案 2 :(得分:-3)

有两种选择。 选项一是使用计时器。这将允许您指定时间段,如果需要,则可以指定时间间隔。如果您只是在运行它,只需禁用计时器

选项二。使用

 System.Threading.Thread.Sleep(10000);

其中sleep函数中的数字是以ms为单位的等待时间。 1000毫秒= 1秒