C# 在后台运行作业

C# 在后台运行作业,c#,.net,asp.net,vb.net,multithreading,C#,.net,Asp.net,Vb.net,Multithreading,我需要一块在后台运行作业的代码。假设用户单击Submit按钮,然后一个作业在后台启动,同时用户关闭该窗口并运行另一个作业,并且该作业应继续运行 请在ASP.NET和VB.NET中提供一些帮助 非常感谢您的帮助您可以看看这个方法,它允许您对从线程池中提取的线程运行一些方法。另一种方法是,如果是长时间运行的任务,您可以使用该类手动生成新线程,以避免危及池中的线程,该池包含数量有限的线程,并且还用于为ASP.NET应用程序中的请求提供服务。您可以使用,根据您的上下文。您可以通过创建承载wcf服务的wi

我需要一块在后台运行作业的代码。假设用户单击Submit按钮,然后一个作业在后台启动,同时用户关闭该窗口并运行另一个作业,并且该作业应继续运行

请在ASP.NET和VB.NET中提供一些帮助


非常感谢您的帮助

您可以看看这个方法,它允许您对从线程池中提取的线程运行一些方法。另一种方法是,如果是长时间运行的任务,您可以使用该类手动生成新线程,以避免危及池中的线程,该池包含数量有限的线程,并且还用于为ASP.NET应用程序中的请求提供服务。

您可以使用,根据您的上下文。

您可以通过创建承载wcf服务的windows服务来执行此操作,当用户单击“提交”按钮时,您可以将请求发送到windows服务,windows服务将在用户关闭窗口的后台事件中运行。

a可能是最容易启动的地方。将代码放入DoWork事件。

将在后台运行,如果需要,可以轻松地将更新同步回GUI


或者使用…

但是如果是长时间运行的作业,会话终止时会发生什么。线程不也随之下降吗?@Patrick,不,线程与会话无关。它们与AppDomain相关,因此只要IIS继续加载应用程序,它们就会运行。另一方面,如果IIS卸载应用程序池,线程也将停止运行。因此,根据正在执行的作业的生存期,启动线程可能无法解决此问题?您知道IIS关闭应用程序需要多长时间吗?因为您无法直接控制web应用程序的生命周期,所以后台线程通常是个坏主意。如果作业很短,很甜蜜,并且您可以在完成之前就接受它被杀死的机会,而不会丢失数据,那么当然可以,但否则我会在服务中实现作业,并以某种方式向该服务传达需要一个新作业。