Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
取消长时间运行的任务Asp.net_Asp.net_Webforms_Task - Fatal编程技术网

取消长时间运行的任务Asp.net

取消长时间运行的任务Asp.net,asp.net,webforms,task,Asp.net,Webforms,Task,我正在使用ASP.NETWebForms。 在回发中,我创建了一个任务(任务运行时间很长)。 在html页面中,我需要一个可以取消此任务的按钮。 1.我单击按钮获取在服务器上运行任务的结果 2.等待一段时间后,我点击按钮取消,我需要的任务将被取消 如何才能做到这一点?尽管您可以做到,但在ASP.NET中创建长时间运行的任务通常不是一个好主意,尤其是如果它们是后台任务 Phil Haack在这方面有一篇很棒的文章- 下面是关于这个话题的另一篇好文章- 你可以考虑消息总线之类的东西。您也可以在数据库

我正在使用ASP.NETWebForms。 在回发中,我创建了一个任务(任务运行时间很长)。 在html页面中,我需要一个可以取消此任务的按钮。 1.我单击按钮获取在服务器上运行任务的结果 2.等待一段时间后,我点击按钮取消,我需要的任务将被取消


如何才能做到这一点?

尽管您可以做到,但在ASP.NET中创建长时间运行的任务通常不是一个好主意,尤其是如果它们是后台任务

Phil Haack在这方面有一篇很棒的文章-

下面是关于这个话题的另一篇好文章-

<>你可以考虑消息总线之类的东西。您也可以在数据库中考虑一个简单的TaskQuead表,您的Web应用程序将插入一个对应于您的任务的记录,状态“待定”。然后,您可以拥有一个后台服务(如windows服务),该服务读取“挂起”任务,并在处理过程中将其标记为“InProgress”,完成后将其标记为“Complete”。这样,当任务处于“挂起”状态时,您可以让用户从UI中取消任务,这将从数据库中删除“挂起”记录

另一种选择是使用这样的解决方案-