2014-10-05 67 views
0

我正在使用ASP.NET WebForms。 在回发我创建一个任务(任务是非常长的运行)。 在html页面中我需要一个可以取消这个任务的按钮。 1.我点击按钮GetResults,运行服务器上的任务 2.等待一段时间后,我点击按钮取消,我需要的任务将被取消取消长时间运行的任务Asp.net

我该怎么做?

回答

0

虽然你可以这样做,但在ASP.NET中创建一个长时间运行的任务通常不是一个好主意,尤其是如果它们是后台任务的话。

菲尔哈克对此有一个伟大的文章 - http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx/

下面是有关该主题的另一个很好的文章 - http://blog.stephencleary.com/2012/12/returning-early-from-aspnet-requests.html

你可以考虑类似的东西消息总线这一点。您还可以考虑数据库中的简单TaskQueue表,Web应用程序将在其中插入与状态为“待定”的任务相对应的记录。然后,您可以拥有一个后台服务(如windows服务),读取“待处理”任务并在处理期间将其标记为“正在处理”,并在处理完成时将其标记为“处理中”。这样,当任务处于“等待中”时,您可以让用户从UI中取消任务,这将简单地从数据库中删除“待定”记录。

另一种选择是使用这样的解决方案 - http://hangfire.io/