【问题标题】:How to run Background process in ASP.Net web Application如何在 ASP.Net Web 应用程序中运行后台进程
【发布时间】:2013-05-17 05:08:32
【问题描述】:

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

我想在用户点击时触发后台进程,也想向这些函数发送一些数据。

谁能建议我如何执行此操作?

【问题讨论】:

标签: c# asp.net background-process


【解决方案1】:
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"

【讨论】:

  • 我看到代码很整洁,但你需要提到代码需要在哪里实现。
  • 这段代码看起来不错。但是没有解释,也没有后台工作者的定义。它是从.Net 导入的吗?你自己写的课吗?这些是人们需要知道的事情,否则您将其留给解释,因此失败和错误使其他人不信任和不确定地看待这个问题,这将损害您的声誉。请修复它,当你有的时候告诉我,我会投赞成票而不是反对票。
【解决方案2】:

虽然它解决了一个更复杂的问题(在使用 IoC 时如何做到这一点,其中对象生命周期被限定为请求),但本文中的 AsyncRunner 类是一个很好的起点。

Start background tasks from MVC actions using Autofac

【讨论】:

    【解决方案3】:
    猜你喜欢
    • 2023-03-28
    • 2020-08-11
    • 2013-08-09
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    相关资源
    最近更新 更多