如何在ASP中运行后台进程.Net web应用程序

本文关键字:后台进程 Net web 应用程序 运行 ASP | 更新日期: 2023-09-27 18:14:16

我想在我的web应用程序中执行一些功能,而不像windows应用程序中的后台进程那样提醒用户正在运行的进程。

我想触发后台进程时,用户点击,并希望发送一些数据给这些功能。

有谁能告诉我怎么做吗?

如何在ASP中运行后台进程.Net web应用程序

private readonly BackgroundWorker backgroundWorker1 = new BackgroundWorker();
protected void Page_Load(object sender, EventArgs e)
    {
        this.backgroundWorker1.DoWork += new System.ComponentModel.DoWorkEventHandler(this.backgroundWorker1_DoWork);
    }
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        try
        {
            timing();
        }
        catch
        {
        }
    }
    public void timing()
    {
        string tt = DateTime.Now.ToString("tt");
        string t = "";
        if (tt == "AM")
        {
            int hour = DateTime.Now.Hour;
            if ((hour >= 0) & (hour <= 11))
            {
                t = "GOOD MORNING";
            }
        }
        else if (tt == "PM")
        {
            int hour = DateTime.Now.Hour;
            if ((hour >= 12) & (hour <= 15))
            {
                t = "GOOD AFTERNOON";
            }
            else if ((hour >= 16) & (hour <= 23))
            {
                t = "GOOD EVENING";
            }
        }
        Label1.Text = t;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        backgroundWorker1.RunWorkerAsync();
    }

//SOURCE:
<%@ Page Language="C#" Async="true" AutoEventWireup="true" CodeFile="background.aspx.cs" Inherits="background" %> //Async="true"

虽然它解决了一个更复杂的问题(在使用IoC时,对象生存期的范围是请求),但本文中的AsyncRunner类是一个很好的起点。

使用Autofac从MVC动作启动后台任务

也许您可以通过这些链接了解如何处理需求。

http://www.dotnetfunda.com/articles/article613-background-processes-in-asp-net-web-applications.aspx

https://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

http://www.codeproject.com/Questions/137330/Run-a-background-job-in-ASP-NET