C# 在MVC 5中作为后台任务导出到Excel

C# 在MVC 5中作为后台任务导出到Excel,c#,background,task-parallel-library,export-to-excel,C#,Background,Task Parallel Library,Export To Excel,我正在开发一个MVC5应用程序,它需要将大量数据导出到excel, 所以我在一个单独的线程中运行它,并按预期工作。但当用户导航到其他页面时,导出将被取消。我怎样才能做到这一点。 非常感谢你的帮助 用户离开页面时未获得结果 允许用户检索长时间运行的流程结果的典型策略是将某种令牌与其处理请求(可以是GUID、数据库ID等)关联。将流程结果与该ID关联 一个简单的方案是使用GUID作为文件名的一部分保存文件系统中的每个文件。您还需要一个数据库表,将用户与其启动的长时间运行的进程的0:N GUID相关联

我正在开发一个MVC5应用程序,它需要将大量数据导出到excel, 所以我在一个单独的线程中运行它,并按预期工作。但当用户导航到其他页面时,导出将被取消。我怎样才能做到这一点。 非常感谢你的帮助

用户离开页面时未获得结果

允许用户检索长时间运行的流程结果的典型策略是将某种令牌与其处理请求(可以是GUID、数据库ID等)关联。将流程结果与该ID关联

一个简单的方案是使用GUID作为文件名的一部分保存文件系统中的每个文件。您还需要一个数据库表,将用户与其启动的长时间运行的进程的0:N GUID相关联,可能还需要一个状态列,指示作业是否完成。您还可以将生成的文件保存到数据库中。不管您如何保存过程的结果,请确保并提供某种机制来定期清理旧数据

为用户提供一个页面,用户可以在其中检查长期运行的流程的状态,并在流程完成后下载结果。根据您的情况,您还可以通过电子邮件向用户发送一个链接,用户可以在完成后使用该链接下载文件

请注意,使用TPL处理请求可能不是最佳方案。要查看备选方案的完整列表,请查看

用户离开页面时未获得结果

允许用户检索长时间运行的流程结果的典型策略是将某种令牌与其处理请求(可以是GUID、数据库ID等)关联。将流程结果与该ID关联

一个简单的方案是使用GUID作为文件名的一部分保存文件系统中的每个文件。您还需要一个数据库表,将用户与其启动的长时间运行的进程的0:N GUID相关联,可能还需要一个状态列,指示作业是否完成。您还可以将生成的文件保存到数据库中。不管您如何保存过程的结果,请确保并提供某种机制来定期清理旧数据

为用户提供一个页面,用户可以在其中检查长期运行的流程的状态,并在流程完成后下载结果。根据您的情况,您还可以通过电子邮件向用户发送一个链接,用户可以在完成后使用该链接下载文件

请注意,使用TPL处理请求可能不是最佳方案。要查看备选方案的完整列表,请查看


当用户导航离开时,您的后台任务是否会被取消,或者您的意思是用户没有得到结果,因为他们在结果准备好之前离开了页面?嗨,Eric,谢谢您的回复。我的意思是说用户离开页面时没有得到结果。当用户导航离开时,您的后台任务是否被取消,或者您的意思是用户没有得到结果,因为他们在结果准备好之前离开了页面?嗨,Eric,感谢您的回复。我的意思是说用户离开页面时没有得到结果。