0

我有一个 Web 应用程序,可以生成其他团队上传的较小图像的放大图像,如果上传的文件夹中没有图像,则停止。

需要单击一个按钮以开始生成图像并在每次完成时重新启动。

是否可以在应用程序停止时定期自动触发此单击事件,例如 15 分钟或更长时间。

在较早的线程How to write C# Scheduler上提出了类似的问题。

private void OnTimerTick()
{
    if (DateTime.Now.Minutes % 15 == 0)
    {
        // Do something
    }
}

我应该在哪里放置计时器来调用下面的代码?

protected void btnImgGenerate_click()
{
    // Application code
}

有没有办法检查asp.net中的Web应用程序是否已停止执行然后自动重新启动它?

使用计时器,我可以安排应用程序在一天中的特定时间启动和停止,并使用第二种方法使应用程序在指定的一天中持续运行。

4

3 回答 3

1

在 15 分钟后单击按钮(这将导致回发并触发您的事件)的 jQuery 实现是:

$(document).ready(function(){
    setTimeout(function(){$('btnImgGenerate').click();},900000);
});
于 2012-11-03T06:26:35.743 回答
1

您可以添加代码以从 Global.asax 文件中的 System.Threading 命名空间初始化计时器,并将其配置为以所需的周期执行某些功能。但是,如果您的应用程序崩溃,您将遇到以下问题:

有没有办法检查 asp.net 中的 Web 应用程序是否已停止执行然后自动重新启动它?

使用计时器,我可以安排应用程序在一天中的特定时间启动和停止,并使用第二种方法保持应用程序在一天中指定的持续时间内运行。

没有。如果由于某些原因停止并且没有新请求出现,您将无法从自身启动 Web 应用程序。因此,在我看来,出于您的目的,更适合 Windows 服务。

于 2012-11-03T06:35:35.660 回答
0

有一个启动计时器的按钮单击事件-

 protected void button1_Click(object sender, EventArgs e)
    {
     timer1.Enabled = true;
    }

在计时器 Tick 事件中,您可以执行以下操作-

protected void timer1_Tick(object sender, EventArgs e)
    {
      timer1.enabled=false;
      //do your coding
      timer1.enabled= true;
    }

因此,一旦您单击按钮,计时器就会启动,执行所有操作,最后在您将 timer1.enabled 设置为 true 后自动重新启动。

如果您正在寻找在没有点击事件的情况下自动执行此操作,您可以使用 javascript setInterval() 方法 - 请参见此处的示例 -

http://www.w3schools.com/jsref/met_win_setinterval.asp

于 2012-11-03T06:23:27.343 回答