2013-05-17 164 views
2

我想执行我的web应用程序中的某些功能,而不需要像在windows应用程序中的后台进程一样提示用户正在运行的进程。如何在ASP.Net web应用程序中运行后台进程

我想触发后台进程,当用户点击并想要发送一些数据到这些功能。

任何人都可以告诉我这是如何执行的吗?

+0

http://www.codeproject.com/Articles/349139/Running-a-background-service-in-a-Web-Application – Rahul

+0

已经尝试过这一点,但在这种情况下,我没有工作,因为我想要触发后台进程,当用户点击并发送一些数据到这些功能也 –

+0

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

回答

2
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" 
+5

我看到的代码是整洁和圆滑的,但你需要提到这个代码需要实现的地方。 – Vikneshwar

+1

此代码看起来不错。但是没有解释,也没有背景工作者的定义。它是从.Net导入的吗?你自己写了课?这些是人们需要知道的事情,否则你会将其解释为公开的,因此失败和错误会让其他人视之为不信任和不确定的问题,这会损害你的声誉。请解决它,让我知道你什么时候有,我会投票,而不是倒下。 –